繁体   English   中英

多个jradiobutton的动作监听器

[英]actionlistener for multiple jradiobutton

我有一个for循环内的多个jradiobutton,我试图将侦听器放在它上面,这就是我发现的结果:

多个单选按钮的动作侦听器

创建二维的JRadioButton数组,例如

  JRadioButton[][] jRadioButtons = new JRadioButton[8][]; ButtonGroup bg = new ButtonGroup(); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(8, 8)); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { JRadioButton btn = new JRadioButton(); btn.addActionListener(listener); btn.setName("Btn[" + i + "," + j + "]"); bg.add(btn); panel.add(btn); // can be used for other operations jRadioButtons[i][j] = btn; } } 

这是所有JRadioButton的单个ActionListener

 ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JRadioButton btn = (JRadioButton) e.getSource(); System.out.println("Selected Button = " + btn.getName()); } }; 

我有点理解,但我仍然有一些澄清:

  1. 二维jradiobutton的目的是什么? 我的意思是说我有点想为jradiobuttons设置一个名称,但据我所知,它仅用于显示。 是的,以确认这是您选择的jradiobutton,但我不知道将actionlistener用作按钮的目的是什么
  2. 二维jradiobutton真的有必要吗?
  3. 我可以只使用jradiobuttons的名称吗

做这样的事情:

if(NameOfJRadioButton.isSelected())

{

//some procedures

}

^(我似乎无法将其转换为代码:/)

如果是这样,我该怎么办? 或者您对如何为多个jradiobutton放置侦听器有其他建议吗? 谢谢您的任何建议:)

在第一点和第二点,二维数组的原因是未知的,因为它不是您的代码,但对于使用JRadioButtons根本不是必需的。 但是,将所有按钮都放在某种类型的数组中很有用,无论是数组列表还是buttonGroup(按钮的摆动列表),用于在调用动作时检查按钮的内容。 例如,在第3点,此数组列表将允许您循环浏览并检查已选择了哪些按钮并采取相应的措施。

动作侦听器的目的是在用户单击按钮时执行动作。 最普遍的用途是这样做,因此仅允许用户选择一定数量的JRadioButton或在选定它们后将其禁用。 例如在字符选择菜单上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM