2013-03-31 6 views
2

피자 JMenu로 JMenuBar를 만들었습니다. JMenu에는 menuItem을 스크롤 할 때 나타나는 3 개의 JRadioButton과 2 개의 JCheckBox가 있습니다. 문제는 JRadioButton 또는 JCheckBox를 클릭하면 전체 메뉴가 사라진다는 것입니다. 특정 방법이나 다른 방법으로이 문제를 방지 할 수 있습니까?JRadioButtons 또는 JCheckBoxes가 사용될 때 JMenu가 사라집니다.

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class MenuExamplePizza extends JFrame 
{ 
    private JMenuBar menuBar; 
    private JMenu menu, sizeMenu, extrasMenu, helpMenu; 
    private JMenuItem menuItem;private JRadioButtonMenuItem smallrbMenuItem, medrbMenuItem, largerbMenuItem; 
    private JCheckBoxMenuItem peppchMenuItem, anchMenuItem; 

public MenuExamplePizza()                // Default Constructor 
{ 
    menuBar = new JMenuBar();                  //Create the menu bar 

    menu = new JMenu("Pizza");                  //Build the first menu 
    menu.setMnemonic('P'); 
    menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items"); 
    menuBar.add(menu); 

    menuItem = new JMenuItem("Total"); 
    menuItem.setMnemonic('T'); 
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, ActionEvent.CTRL_MASK)); 
    menuItem.getAccessibleContext().setAccessibleDescription("This doesn't really do anything"); 
    menu.add(menuItem); 
    menu.addSeparator(); 

    sizeMenu = new JMenu("Size"); 
    sizeMenu.setMnemonic('S'); 
    ButtonGroup group = new ButtonGroup(); 
    smallrbMenuItem = new JRadioButtonMenuItem("Small"); 
    group.add(smallrbMenuItem); 
    sizeMenu.add(smallrbMenuItem); 
    medrbMenuItem = new JRadioButtonMenuItem("Medium"); 
    group.add(medrbMenuItem); 
    sizeMenu.add(medrbMenuItem); 
    largerbMenuItem = new JRadioButtonMenuItem("Large"); 
    group.add(largerbMenuItem); 
    sizeMenu.add(largerbMenuItem); 
    menu.add(sizeMenu); 

    extrasMenu = new JMenu("Extras"); 
    extrasMenu.setMnemonic('E'); 
    peppchMenuItem = new JCheckBoxMenuItem("Pepperoni"); 
    extrasMenu.add(peppchMenuItem); 
    anchMenuItem = new JCheckBoxMenuItem("Anchovies"); 
    extrasMenu.add(anchMenuItem); 
    menu.add(extrasMenu); 

    menu.addSeparator();                  // a group of radio button menu items                  

    menuItem = new JMenuItem("Exit"); 
    menuItem.setMnemonic('x'); 
    menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); 
    menuItem.getAccessibleContext().setAccessibleDescription("This doesn't really do anything"); 
    menu.add(menuItem); 

    helpMenu = new JMenu("Help");               //Build second menu in the menu bar. 

    menuBar.add(menu); 
    menuBar.add(helpMenu); 
    add(menuBar); 
    setJMenuBar(menuBar); 
} 
+0

"전체 메뉴가 사라짐"이란 무엇을 의미합니까? '피자'메뉴가 보이지 않게됩니까? –

+0

예 menuItem, JCheckBox 또는 JRadioButton을 클릭하면 피자 메뉴가 보이지 않게됩니다. –

+0

하지만 내 편에서는 잘 작동합니다. –

답변

3

원하는대로되는지 확인하려면 Keeping Menus Open을 확인하십시오.

+0

+1 스윙에서 무엇이든 할 수 있습니다 .. !! –