Checkboxy w menu

0

mam nastepujacy problem, chce stworzyc menu, w ktorym beda checkboxy ale nie wiem dlaczego ponizszy zapis zwraca mi blad:

[code]Menu menu2 = new Menu("Kolor tla");
//CheckboxGroup ChkG = new CheckboxGroup();
//menu2.add(new Checkbox("Zielony", ChkG, false));
//menu2.add(new Checkbox("Czerwony", ChkG, false));
//menu2.add(new Checkbox("Niebieski", ChkG, false));
menuBar.add(menu2);
menu2.addActionListener(this);[/code]

podczas gdy ta nie zwraca bledu :
[code]Menu menu1 = new Menu("Layers");
menu1.add(new MenuItem("FlowLayout"));
menu1.add(new MenuItem("BorderLayout"));
menu1.add(new MenuItem("-"));
menu1.add(new MenuItem("GridLayout"));
menu1.add(new MenuItem("GridBackLayout"));
menuBar.add(menu1);
menu1.addActionListener(this);[/code]

proszę o pomoc,
z góry dzieki.

0

Autopoprawka, JCheckboxMenuItem dla swinga, zaś CheckboxMenuItem awt.

pzdr,

y.

0

przesiadlem sie na Swinga i mam kolejny problem, chodzi mi o to, mam menu a w nim jakies elementy prosze o przyklad kodu zrodlowego z wyjasnieniem pobieżnym - jak teraz oprogramować te MenuItemy, aby np zmienialy forme lub wyswietlaly nowa forme.

Kod ktory obecnie mam to :

[code]import java.awt.;
import java.awt.event.
;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;

import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;

public class Swing_Menu {

public JMenuBar createMenuBar() {
    JMenuBar menuBar;
    JMenu menu, submenu;
    JMenuItem menuItem;
    JRadioButtonMenuItem rbMenuItem;
    JCheckBoxMenuItem cbMenuItem;

    //Tworzenie menu
    menuBar = new JMenuBar();

    //1 menu
    menu = new JMenu("Layers");
    menu.setMnemonic(KeyEvent.VK_A);
    menuBar.add(menu);

    menuItem = new JMenuItem("FlowLayout",KeyEvent.VK_F);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
    menu.add(menuItem);

    menuItem = new JMenuItem("BorderLayout",KeyEvent.VK_F);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
    menu.add(menuItem);

menu.addSeparator();        

   menuItem = new JMenuItem("GridLayout",KeyEvent.VK_R);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK));
    menu.add(menuItem);

    menuItem = new JMenuItem("GridBagLayout",KeyEvent.VK_I);
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK));
    menu.add(menuItem);

    
//menu 2
menu = new JMenu("Kolor tla");
    menu.setMnemonic(KeyEvent.VK_K);
    menuBar.add(menu);


//checkboxy w menu
    cbMenuItem = new JCheckBoxMenuItem("Zielony");
    cbMenuItem.setMnemonic(KeyEvent.VK_Z);
    menu.add(cbMenuItem);

    cbMenuItem = new JCheckBoxMenuItem("Czerwony");
    cbMenuItem.setMnemonic(KeyEvent.VK_Z);
    menu.add(cbMenuItem);

    cbMenuItem = new JCheckBoxMenuItem("Niebieski");
    cbMenuItem.setMnemonic(KeyEvent.VK_N);
    menu.add(cbMenuItem);


//menu 3
ImageIcon icon = createImageIcon("images/xmas.gif");
    menuItem = new JMenuItem(icon);
    menuItem.setMnemonic(KeyEvent.VK_B);
    menu.add(menuItem);

    menuItem = new JMenuItem(icon);
    menuItem.setMnemonic(KeyEvent.VK_D);
    menu.add(menuItem);


    return menuBar;
}

protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = MenuLookDemo.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}

private static void PokazGUI() {

    JFrame.setDefaultLookAndFeelDecorated(true);

    //Ustawienie okna
    JFrame okno = new JFrame("Menusy");
    okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    Swing_Menu pokaz = new Swing_Menu();
    okno.setJMenuBar(pokaz.createMenuBar());



    //Wyswietl
    okno.setSize(450, 260);
    okno.setVisible(true);
}

public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            PokazGUI();
        }
    });
}

}[/code]

0

Witam !
Cos mi to przypomina zadanie, ktore mialem niedawno.
Czy moze chodzi o zamiane ułożenia paneli ?
Zmane napisow na buttonach oraz kolorow napisów ?
Jesli tak to jest to samo zadanie.

0

tak dokladnie :) hehe UZ.zgora.pl :) tylko ja to chce zrobic moja metoda :) i nie umiem ustawic akcji pod przyciski menu: przeczytalem cos takiego w tutorialu:

[code]menuItem = new JMenuItem("An item in the submenu");
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_2, ActionEvent.ALT_MASK));
menuItem.addActionListener(this);
submenu.add(menuItem);[/code]

czyli dochodzi ActionListener, i teraz mam problem jak w actionPerformed ustawic, aby np po kliknieciu na ten przycisk otowrzyla sie nowa forma??
z gory dzieki za odpowiedz

0

Tak myslalem .

public void actionPerformed(ActionEvent evt){
if(evt.getSource()==tutaj_nazwa_podmenu){
tuatj metoda zmieniajaca Layuot ;

	}
	if(evt.getSource()==tutaj_nazwa_podmenu){
                                tuatj metoda zmieniajaca Layuot ;
			

Musisz w klasie ale pewnie wiesz o tym z tutoriala zaimplementowac ActionListener. Pod każde zdarzenie musisz podpiac metode.
Czesc

0

moglbys zerknac tutaj --> http://4programmers.net/Forum/viewtopic.php?id=53663
gdzie jest kontyunacja tego watku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1