如果我选择了它的值,测试我的返回值的最佳方法是什么,不知怎的,我坚持如何获得所选值的概念......
我的功能现在做了什么,我在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;
}
答案 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());
}
}
}