如何测试我的jradiomenubutton是否是我想要的价值

时间:2014-02-14 15:10:06

标签: java swing user-interface return jradiobutton

如果我选择了它的值,测试我的返回值的最佳方法是什么,不知怎的,我坚持如何获得所选值的概念......

我的功能现在做了什么,我在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;



}

1 个答案:

答案 0 :(得分: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());
        }
    }
}