我的挥杆应用程序上有5个JRadio按钮。当我单击我的Jradio按钮时。我创建了一个joption对话框来显示它被点击了。但是当我取消选择它时,它也会显示它已被选中。问题是什么? 我的一个Jradio按钮编码。
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
JOptionPane.showMessageDialog(null,"one is selected");
}
所以我终于得到了答案
在@Neil Locketz的帮助下
private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
if(jRadioButton1.isSelected())
{
JOptionPane.showMessageDialog(null,"one is selected");
}
}
由于
答案 0 :(得分:2)
无法直接进行,必须换行,延迟此事件以在JOptionPane
内显示invokeLater()
这是Bug for Java6 versions 6924233 : JOptionPane inside JCheckBox itemListener causes setSelected(false)
答案 1 :(得分:1)
您需要对JRadioButton对象的引用,以便您可以调用button.isSelected(),这将返回一个布尔值,表示您正在测试的按钮是否被选中。
答案 2 :(得分:0)
请记住,这完全是伪代码
JRadioButton testButton1=new JRadioButton("button1");
JRadioButton testButton2=new JRadioButton("button2");
ButtonGroup btngroup=new ButtonGroup();
btngroup.add(testButton1);
btngroup.add(testButton2);
boolean test;
foreach(JRadioButton b in btngroup){
test = b.isSelected();
if(test)
JOptionPane.showMessageDialog(null, b.getValue() + "is selected");
}
答案 3 :(得分:0)
我建议您创建一个ActionListener
个实例并将其添加到所有按钮中。像这样:
ButtonGroup group = new ButtonGroup();
JRadioButton radio = new JRadioButton("1");
JRadioButton radio2 = new JRadioButton("2");
JRadioButton radio3 = new JRadioButton("3");
group.add(radio);
group.add(radio2);
group.add(radio3);
ActionListener a = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JRadioButton source = (JRadioButton) e.getSource();
System.out.println(source.getText() + " selected " + source.isSelected());
}
};
radio.addActionListener(a);
radio2.addActionListener(a);
radio3.addActionListener(a);