0
 package pkg411project;

 import javax.swing.ButtonGroup;

 public class CrudMain extends javax.swing.JInternalFrame {

public CrudMain() {
    initComponents();
}

@SuppressWarnings("unchecked")

private void jRadioButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                              
    // TODO add your handling code here:
}                                             

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   BankRecordFrame bdFrame = new BankRecordFrame(); 
    bdFrame.setVisible(true);
    this.jDesktopPane2.add(bdFrame); 

}                                        

// Variables declaration - do not modify                     
private javax.swing.JButton jButton1;
private javax.swing.JDesktopPane jDesktopPane2;
private javax.swing.JLabel jLabel1;
private javax.swing.JRadioButton jRadioButton1;
private javax.swing.JRadioButton jRadioButton2;
private javax.swing.JRadioButton jRadioButton3;
private javax.swing.JRadioButton jRadioButton4;
private javax.swing.JRadioButton jRadioButton5;
// End of variables declaration                   

//ButtonGroup group = new ButtonGroup();
//group.


}

我认为这是一个简单的问题。我有四个单选按钮和单选按钮下方的常规提交按钮。当用户单击提交按钮时,我试图启动一个 Jframe(此时选择了一个单选按钮) Jframe 根据所选单选按钮启动。您如何将其放入代码中?有任何想法吗?

4

3 回答 3

1

在按钮的动作监听器中,检查哪个单选按钮被选中:

private void jButton1ActionPerformed(ActionEvent evt) {                                         
    if (jRadioButton1.isSelected()) {
        // show frame 1
    }
    else if (jRadioButton2.isSelected()) {
        // show frame 2
    }
    else if (jRadioButton3.isSelected()) {
        // show frame 3
    }
    else if (jRadioButton4.isSelected()) {
        // show frame 4
    }
}                    
于 2012-04-30T23:16:13.467 回答
1

您需要使用 ButtonGroup 来控制选择行为(因此一次只能选择一个单选按钮)。将 ActionListener 添加到 JButton,并在侦听器内部,从 ButtonGroup 中检索选定的按钮。

于 2012-04-30T23:25:32.133 回答
1

您可以通过多种方式执行此操作。我会尝试在这里发布其中一个。

这不一定是最好的选择,但它可能只适合你。(我没有测试这个)

public class CrudMain extends javax.swing.JInternalFrame {

public CrudMain() {
    initRadioButtons();
    initOtherStuff();
}

private JRadioButton[] radioButtons = new JRadioButton[4];
private JRadioButton btn1 = new JRadioButton();
private JRadioButton btn2 = new JRadioButton();
private JRadioButton btn3 = new JRadioButton();
private JRadioButton btn4 = new JRadioButton();
private JButton submitBtn = new JButton("Submit"); 

public void initRadioButtons() {
    radioButtons[0] = btn1;
    radioButtons[1] = btn2;
    radioButtons[2] = btn3;
    radioButtons[3] = btn4;
}

public void initOtherStuff() {
    //add stuff to your frame
    .......
    submitBtn.addActionListener(this)
}

public void actionPerformed(ActionEvent e) {
    for(int i =0; i < radioButtons.length; i++){
        if(radioButtons[i].isSelected()){
            //Open your frame here
            break; //Place break if you only want one radiobutton to be checked.
        } else {
            //This button was not selected
        }
    }
}

那么让我们看一下这段代码。我将所有按钮放在一个数组中,以便您可以轻松地循环浏览内容以检查它们是否已被选中。我在按钮上放了一个 actionListener,当有人点击它时它会触发。当 actionListener 触发时,它将循环遍历数组。在每次迭代中,每个按钮的状态都会被检查。如果已选择一个,它将触发一个动作。

就是这样。如果您需要有关此代码的帮助,请告诉我!

祝你好运!

编辑 :

刚刚注意到,使用这种方法,您不能为每个单选按钮指定一个操作。这是您必须添加的内容:) 祝你好运!

于 2012-05-01T11:52:02.987 回答