【问题标题】:How to test if my jradiomenubutton it's the value that i wanted如何测试我的 jradiomenubutton 是否是我想要的值
【发布时间】:2014-02-14 15:10:05
【问题描述】:

如果它是我选择的值,那么测试我的返回值的最佳方法是什么,不知何故,我对如何获得所选值的概念感到困惑......

我的函数现在做了什么,我在 GUI 中添加了我想要的所有按钮,并根据我单击的按钮返回值菜单。

private JMenu getOrdreMenu(){

    JMenu menu = new JMenu(MENU_ORDRE_TITLE);
    ButtonGroup group = new ButtonGroup();

    JRadioButtonMenuItem item = new JRadioButtonMenuItem(MENU_ORDRE_NSEQC);
             item.setSelected(true);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_NSEQD);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_FORMEC);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_FORMED);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_TYPENORMAL);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_TYPEINVERSE);
    group.add(item);
    menu.add(item);

    item = new JRadioButtonMenuItem(MENU_ORDRE_DISTANCEC);
    group.add(item);
    menu.add(item);

    add(menu);
    return menu;



}

【问题讨论】:

    标签: java swing user-interface return jradiobutton


    【解决方案1】:

    “如果它是我选择的值,那么测试我的返回值的最佳方法是什么,不知何故,我对如何获得所选值的概念感到困惑..”

    由于它们位于ButtonGroup 中,因此您无需检查是否选择了一个。每次选择一个,它将是唯一 一个被选中。所以你需要做的就是添加一个ActionListener

    您似乎从未向菜单项添加侦听器。看这个例子,我在其中添加了一个监听器

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.ButtonGroup;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.SwingUtilities;
    
    public class RadioMenus {
    
        private static final String MENU_ORDRE_TITLE = "Tilte";
        private static final String MENU_ORDRE_NSEQC = "NSEQC";
        private static final String MENU_ORDRE_NSEQD = "NSEQD";
        private static final String MENU_ORDRE_FORMEC = "FORMEC";
    
        public RadioMenus() {
            JMenuBar menubar = new JMenuBar();
            menubar.add(getOrdreMenu());
    
            JFrame frame = new JFrame("Menu");
            frame.setJMenuBar(menubar);
            frame.setSize(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
    
        }
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable(){
                public void run() {
                    new RadioMenus();
                }
            });
        }
    
        private JMenu getOrdreMenu() {
            MyMenuListener listener = new MyMenuListener();
    
            JMenu menu = new JMenu(MENU_ORDRE_TITLE);
            ButtonGroup group = new ButtonGroup();
    
            JRadioButtonMenuItem item = new JRadioButtonMenuItem(MENU_ORDRE_NSEQC);
            item.addActionListener(listener);
            group.add(item);
            menu.add(item);
    
            JRadioButtonMenuItem item1 = new JRadioButtonMenuItem(MENU_ORDRE_NSEQD);
            item1.addActionListener(listener);
            group.add(item1);
            menu.add(item1);
    
            JRadioButtonMenuItem item2 = new JRadioButtonMenuItem(MENU_ORDRE_FORMEC);
            item2.addActionListener(listener);
            group.add(item2);
            menu.add(item2);
    
            return menu;
        }
    
        public class MyMenuListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                JRadioButtonMenuItem menuItem = (JRadioButtonMenuItem)e.getSource();
                System.out.println(menuItem.getActionCommand());
            }
        }
    }
    

    【讨论】:

    • 感谢您的帮助! :D
    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多