JRadionButton自动取消选择

问题描述:

我有一个jframe,其中包含两个JRadioButton。JRadionButton自动取消选择

public class jradioButtontest extends javax.swing.JFrame { 

public jradioButtontest() { 
    initComponents(); 
} 

@SuppressWarnings("unchecked") 
// <editor-fold defaultstate="collapsed" desc="Generated Code"> 
private void initComponents() { 

    jRadioButton1 = new javax.swing.JRadioButton(); 
    jRadioButton2 = new javax.swing.JRadioButton(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

    jRadioButton1.setText("jRadioButton1"); 

    jRadioButton2.setText("jRadioButton2"); 

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout); 
    layout.setHorizontalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(198, 198, 198) 
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
       .addComponent(jRadioButton2) 
       .addComponent(jRadioButton1)) 
      .addContainerGap(203, Short.MAX_VALUE)) 
    ); 
    layout.setVerticalGroup(
     layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
     .addGroup(layout.createSequentialGroup() 
      .addGap(80, 80, 80) 
      .addComponent(jRadioButton1) 
      .addGap(18, 18, 18) 
      .addComponent(jRadioButton2) 
      .addContainerGap(225, Short.MAX_VALUE)) 
    ); 

    pack(); 
}// </editor-fold> 

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new jradioButtontest().setVisible(true); 
     } 
    }); 
} 
// Variables declaration - do not modify 
private javax.swing.JRadioButton jRadioButton1; 
private javax.swing.JRadioButton jRadioButton2; 
// End of variables declaration 
} 

我想要当我第一次选择JRadioButton,其他JRadioButton应该被取消选择。 我使用ready jframe,如何更改netbeans生成的代码? 这是怎么回事?

+1

你知道,只是检查了[单选框教程](http://docs.oracle.com/javase/tutorial/uiswing/components/button.html#radiobutton)将有按字面上提到的这个问题的输入速度更快:“对于每组单选按钮,您需要创建一个ButtonGroup实例并为其添加每个单选按钮。当用户选择另一个按钮时,ButtonGroup负责取消选择先前选择的按钮该组“ – Robin 2013-03-04 18:29:28

默认情况下,新的一个JRadioButton在其自己的ButtonGroup中,这意味着它们都可以独立选择创建。

如果你想链接,这样,只有一个可以在同一时间内选择了两个按钮,您需要添加:

ButtonGroup group = new ButtonGroup(); 
group.add(jRadioButton1); 
group.add(jRadioButton2); 

您已经构建了按钮后。

+0

因为我使用就绪的jframe,我如何更改netbeans生成的代码来添加你的代码? – Sajad 2013-03-04 18:40:01

将2 JRadioButtons添加到单个javax.swing.ButtonGroup实例。

参见:How to Use the ButtonGroup Component

+0

因为我使用就绪jframe,我如何更改netbeans生成的代码添加你的代码? – Sajad 2013-03-04 18:40:22

+0

在'NetBeans'中,使用属性编辑器创建'ButtonGroup'组件,并为'JRadioButtons'设置'buttonGroup'属性为该对象。 – Reimeus 2013-03-04 18:44:57

+2

我会推荐也用手编写Swing GUI。这会让你更熟悉代码本身:) – Reimeus 2013-03-04 19:09:02

使用的ButtonGroup:

ButtonGroup buttongroup = new ButtonGroup(); 
buttongroup.add(...);