检索从组中选择了什么挥动单选按钮

时间:2013-05-06 03:58:48

标签: java swing validation jbutton jradiobutton

用户选择“管理”单选按钮或“用户”单选按钮(其中2个包含在组中)。如果选择了admin单选按钮,则会将用户带到adminDashboard,否则将用户带到userDashboard。

我一直在寻找代码来验证哪个单选按钮被选中,虽然我找不到任何正确的java代码

我当前的按钮和监听器方法代码(尝试使用isSelected())

    JButton btnEnter = new JButton("Enter");
    btnEnter.addMouseListener(new MouseAdapter() 
    {
        public void mouseClicked(MouseEvent e) 
        {
            if(rdbtnAdminAccount.isSelected())
            {
                AdminDashboard admin = new AdminDashboard();
            }
            else if (rdbtnNormalAccount.isSelected())
            {
                UserDashboard userd = new UserDashboard();
            }

        }
    });

单选按钮和组代码:

    JRadioButton rdbtnNormalAccount = new JRadioButton("Normal Account");
    rdbtnNormalAccount.setBounds(361, 190, 109, 23);
    contentPane.add(rdbtnNormalAccount);

    JRadioButton rdbtnAdminAccount = new JRadioButton("Admin Account");
    rdbtnAdminAccount.setBounds(361, 213, 109, 23);
    contentPane.add(rdbtnAdminAccount);

    accountGroup.add(rdbtnNormalAccount);
    accountGroup.add(rdbtnAdminAccount);

1 个答案:

答案 0 :(得分:2)

你可以......

将所有按钮添加到某种类型的List中,只需遍历列表即可找到所选按钮...但是您需要某种方法来确定要采取的操作......

这可以通过使用映射到某种Action的{​​{1}}的{​​{1}}来解决...

基本上...

JRadioButton

你没有必须使用Map,它就是现有的......

你可以......

创建一个方法,该方法采用for (JRadioButton btn : listOfButtons) { if (btn.isSelected()) { Action action = mapOfActions.get(btn); action.actionPerformed(new ActionEvent(e, ActionEvent.ACTION_PERFORMED, null)); break; } } 的变量参数列表,只返回所选的单选按钮,但您仍然需要确定它是哪个按钮...请参阅第一点... < / p>

你可以......

继续做你正在做的事情......