package menu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;
public class JMenuTest extends JFrame implements ActionListener
{
JMenuBar menuBar;
JMenu menuPlik,menuNarzędzia,menuOpcje,menuPomoc;
JMenuItem mOtwórz,mZapisz,mWyjście,mNarz1,mNarz2,mOpcja1,mOProgramie;
JCheckBoxMenuItem chOpcja2;
public static void main(String[] args)
{
JMenuTest appmenu=new JMenuTest();
appmenu.setVisible(true);
}
public JMenuTest
{
setTitle("Demonstracja JMenuBar");
setSize(800,800);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
menuBar=new JMenuBar();
menuPlik=new JMenu("Plik");
mOtwórz=new JMenuItem("Otwórz",'O');
mZapisz=new JMenuItem("Zapisz");
mWyjście= new JMenuItem("Wyjście");
menuPlik.add(mOtwórz);
menuPlik.add(mZapisz);
menuPlik.addSeparator();
menuPlik.add(mWyjście);
mWyjście.addActionListener(this);
mWyjście.setAccelerator(KeyStroke.getKeyStroke("ctrl X"));
menuNarzędzia=new JMenu("Narzędzia");
mNarz1=new JMenuItem("Narz1");
mNarz1.setEnabled(false);
mNarz2=new JMenuItem("Narz2");
menuNarzędzia.add(mNarz1);
menuNarzędzia.add(mNarz2);
menuOpcje=new JMenu("Opcje");
mOpcja1=new JMenuItem("Opcja1");
chOpcja2=new JCheckBoxMenuItem("Opcja2");
chOpcja2.addActionListener(this);
menuOpcje.add(mOpcja1);
menuOpcje.add(chOpcja2);
menuNarzędzia.add(menuOpcje);
menuPomoc=new JMenu("Pomoc");
mOProgramie=new JMenuItem("O Programie");
menuPomoc.add(mOProgramie);
setJMenuBar(menuBar);
menuBar.add(menuPlik);
menuBar.add(menuNarzędzia);
menuBar.add(menuPomoc);
}
@Override
public void actionPerformed(ActionEvent e)
{
Object z=e.getSource();
if(z==mWyjście)
{
dispose();
}
if(z==chOpcja2.isSelected())
{
mNarz1.setEnabled(true);
}
else if(!chOpcja2.isSelected())
{
mNarz1.setEnabled(false);
}
}
}
W netbeans działa menu,ale nie działa checkboxitem,a w eclipse w ogóle nie odpala.Powiedzcie co trzeba poprawić.
usunięcie zbędnych pustych linii z kodu - fp