多个 jradiobutton 的 actionlistener
actionlistener for multiple jradiobutton
我有一个位于 for 循环内的多个 jradiobutton,我试图在其上放置监听器,这就是我发现的:
Action listener for multiple radio buttons
Create two dimensional JRadioButton array like
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;
}
}
Here is single ActionListener for all JRadioButtons
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JRadioButton btn = (JRadioButton) e.getSource();
System.out.println("Selected Button = " + btn.getName());
}
};
我有点明白了,但我还没有澄清:
- 二维 jradiobutton 的用途是什么?我的意思是我有点看到它是为 jradiobuttons 设置一个名称,但据我所知,它仅用于显示。是的,确认那是您选择的 jradiobutton,但我不明白放置 actionlistener
的目的是什么
- 二维 jradiobutton 真的有必要吗?
- 我可以只使用 jradiobuttons 的名称吗
做这样的事情:
if(NameOfJRadioButton.isSelected())
{
//some procedures
}
^(我似乎无法将其转换为代码:/)
如果可以,我该怎么做?或者您对如何为多个 jradiobuttons 设置监听器有任何其他建议吗?感谢您的任何建议:)
关于你的第一点和第二点,二维数组的原因是未知的,因为它不是你的代码,但对于使用 JRadioButtons 来说根本不是必需的。但是,将所有按钮放在某种类型的数组中很有用,无论它是数组列表还是按钮组(按钮的摆动列表),以便在调用操作时使用按钮检查内容。例如在你的第三点,这个数组列表将允许你遍历并检查哪些按钮已经被 selected 并采取相应的行动。
动作侦听器的目的是在用户单击按钮时执行动作。最普遍的用途是让用户只允许 select 一定数量的 JRadioButtons 或在它们被 selected 后禁用它们。例如在角色 selection 菜单。
我有一个位于 for 循环内的多个 jradiobutton,我试图在其上放置监听器,这就是我发现的:
Action listener for multiple radio buttons
Create two dimensional JRadioButton array like
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; } }
Here is single ActionListener for all JRadioButtons
ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JRadioButton btn = (JRadioButton) e.getSource(); System.out.println("Selected Button = " + btn.getName()); } };
我有点明白了,但我还没有澄清:
- 二维 jradiobutton 的用途是什么?我的意思是我有点看到它是为 jradiobuttons 设置一个名称,但据我所知,它仅用于显示。是的,确认那是您选择的 jradiobutton,但我不明白放置 actionlistener 的目的是什么
- 二维 jradiobutton 真的有必要吗?
- 我可以只使用 jradiobuttons 的名称吗
做这样的事情:
if(NameOfJRadioButton.isSelected())
{
//some procedures
}
^(我似乎无法将其转换为代码:/)
如果可以,我该怎么做?或者您对如何为多个 jradiobuttons 设置监听器有任何其他建议吗?感谢您的任何建议:)
关于你的第一点和第二点,二维数组的原因是未知的,因为它不是你的代码,但对于使用 JRadioButtons 来说根本不是必需的。但是,将所有按钮放在某种类型的数组中很有用,无论它是数组列表还是按钮组(按钮的摆动列表),以便在调用操作时使用按钮检查内容。例如在你的第三点,这个数组列表将允许你遍历并检查哪些按钮已经被 selected 并采取相应的行动。
动作侦听器的目的是在用户单击按钮时执行动作。最普遍的用途是让用户只允许 select 一定数量的 JRadioButtons 或在它们被 selected 后禁用它们。例如在角色 selection 菜单。