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.


}

これは私が考える簡単な質問です。4 つのラジオボタンと、ラジオボタンの下に通常の送信ボタンがあります。ユーザーが送信ボタンをクリックしたときに Jframe を起動しようとしています (この時点で radioButton の 1 つが選択されています)。Jframe は、選択されたラジオボタンに応じて起動されます。それをどのようにコードに入れますか?何か案は?

4

3 に答える 3

1

これは複数の方法で行うことができます。そのうちの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 に答える
1

選択動作を制御するには、ButtonGroup を使用します (一度に 1 つのラジオ ボタンのみが選択されるようにします)。ActionListener を JButton に追加し、リスナー内で、選択したボタンを ButtonGroup から取得します。

于 2012-04-30T23:25:32.133 に答える
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 に答える