3
import javax.swing.*;

import java.awt.*;

public class RadioButtonTest extends JFrame {

private JTextField jtfAnswer = new JTextField(10);
private JRadioButton jrbMale = new JRadioButton("Male");
private JRadioButton jrbFemale = new JRadioButton("Female");
private JButton jbSubmit = new JButton("Submit");

public RadioButtonTest(){
    setLayout(new GridLayout(5,1));

    ButtonGroup group = new ButtonGroup();
    group.add(jrbMale);
    group.add(jrbFemale);

    add(new Label("Select gender:"));
    add(jrbMale);
    add(jrbFemale);
    add(jtfAnswer);
    add(jbSubmit);

    setTitle("Radio Button");
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocation(200, 200);
    setSize(150, 150);
    setVisible(true);
}

public static void main(String[] args) {
    new RadioButtonTest();
}
}

選択した値を取得するには を追加する必要があることはわかってactionlistenerいますが、 でコーディングする必要があるコンテンツは何actionlistenerですか?

4

3 に答える 3

4

選択した値を取得するには を追加する必要があることはわかってactionlistenerいますが、 でコーディングする必要があるコンテンツは何actionlistenerですか?

内部ActionListenerでは、アクション イベントのソースを尋ねてから、必要に応じてテキスト フィールドのテキストを設定できます。

ActionListener actionListener = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() instanceof JRadioButton){
            JRadioButton radioButton = (JRadioButton) e.getSource();
            if(radioButton.isSelected()){
                jtfAnswer.setText(radioButton.getText());
            }
        }
    }
};

jrbMale.addActionListener(actionListener);
jrbFemale.addActionListener(actionListener);

EventObject.getSource ()を読むことをお勧めします

于 2013-10-18T12:24:21.860 に答える
3

addActionListener()聞きたいアイテムを呼び出す必要があります。この場合は、送信ボタンで呼び出したいようです。パラメーターとして渡すアクション リスナーには、実行するコードが含まれます。チュートリアルをチェックしてください:

http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

フォーム項目ごとに API を調べて、正しい値を取得するために呼び出すメソッドを理解する必要があります。例:getText()またはisSelected().

于 2013-10-18T12:15:13.363 に答える
0

次のように独自のアクション リスナーを作成します。

class CustomActionListener implements ActionListener{

    private JTextField textField;
    private JRadioButton btn;
    public CustomActionListener( JRadioButton btn, JTextField field){
        this.btn = btn;
        this.textField = field;
    }
    @Override
    public void actionPerformed(ActionEvent arg0) {
        this.textField.setText( this.btn.getText() );

    }

}

そして、それをラジオ ボタンに追加します。

jrbMale.addActionListener( new CustomActionListener( jrbMale, jtfAnswer ) );
jrbFemale.addActionListener( new CustomActionListener( jrbFemale, jtfAnswer ) );
于 2013-10-18T12:30:03.443 に答える