web-dev-qa-db-ja.com

ラジオボタンのアクションリスナー

ラジオボタンの選択に基づいてテキストボックスの編集可能なオプションを設定したいのですが?ラジオボタンのアクションリスナーをコーディングする方法は?

9
agarwav

これは、この場合に使用するソリューションです。

    //The text field
    JTextField textField = new JTextField();

    //The buttons
    JRadioButton rdbtnAllowEdit = new JRadioButton();
    JRadioButton rdbtnDisallowEdit = new JRadioButton();

    //The Group, make sure only one button is selected at a time in the group
    ButtonGroup editableGroup = new ButtonGroup();
    editableGroup.add(rdbtnAllowEdit);
    editableGroup.add(rdbtnDisallowEdit);

    //add allow listener
    rdbtnAllowEdit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            textField.setEditable(true);

        }
    });

    //add disallow listener
    rdbtnDisallowEdit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            textField.setEditable(false);

        }
    });
6
pbible

私のJavaは少し錆びていますが、これはあなたが探しているはずです。

ここにあなたのリスナーがあります:

private RadioListener implements ActionListener{

    private JTextField textField;

    public RadioListener(JTextField textField){
        this.textField = textField;
    }

    public void actionPerformed(ActionEvent e){
        JRadioButton button = (JRadioButton) e.getSource();

        // Set enabled based on button text (you can use whatever text you prefer)
        if (button.getText().equals("Enable")){
            textField.setEditable(true);
        }else{
            textField.setEditable(false);
        }
    }
}  

これを設定するコードは次のとおりです。

JRadioButton enableButton = new JRadioButton("Enable");
JRadioButton disableButton = new JRadioButton("Disable");

JTextField field = new JTextField();

RadioListener listener = new RadioListener(field);

enableButton.addActionListener(listener);
disableButton.addActionListener(listener);
4
zalpha314

これを試して:

JRadioButton myRadioButton = new JRadioButton("");
myRadioButton.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
      // Do something here...
    }
});
2
GETah

この質問に対する別の答え。 zalpha314の回答から少しコードを変更します。

このラジオボタンのテキストによってどのラジオボタンが選択されているかを知ることができ、アクションコマンドによってそれを知ることもできます。 Oracleのラジオボタンのデモコード http://docs.Oracle.com/javase/tutorial/uiswing/examples/components/RadioButtonDemoProject/src/components/RadioButtonDemo.Java で、アクションの使用方法を学びましたコマンド。

まず、2つのアクションコマンドを定義します

_final static String ON = "on"
final static String OFF = "off"
_

次に、アクションコマンドをボタンに追加します

_JRadioButton enableButton = new JRadioButton("Enable");
enableButton.setActionCommand(ON);
JRadioButton disableButton = new JRadioButton("Disable");
disableButton.setActionCommand(OFF);
_

したがって、actionPerformedでは、actionコマンドを取得できます。

_public void actionPerformed(ActionEvent e){
    String ac = e.getActionCommand();
    if (ac.equals(ON)){
        textField.setEditable(true);
    }else{
        textField.setEditable(false);
    }
}
_

button.getText()が非常に長い文字列である場合、アクションコマンドの方が良いかもしれません。

1
xmpy

これを試して:

import Java.awt.*;
import javax.swing.*;
import Java.awt.event.*;
public class NewStudent {
    public static void main(String[] args){
        NewStudent st=new NewStudent();
    }

    public NewStudent(){
        JFrame frame=new JFrame("STUDENT REGISTRATION FORM");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800,600);
        frame.setVisible(true);

        JPanel p1=new JPanel();
        p1.setLayout(null);
        p1.setBackground(Color.CYAN);

        frame.add(p1);
        ButtonGroup buttonGroup=new ButtonGroup();
        JRadioButton male=new JRadioButton("MALE");
        male.setBounds(100,170,100,20);
        buttonGroup.add(male);
        p1.add(male);
        JRadioButton female=new JRadioButton("FEMALE");
        female.setBounds(250,170,100,20);
        buttonGroup.add(female);
        p1.add(female);
        JLabel sex =new JLabel("SEX:");
        sex.setBounds(10,200,100,20);
        p1.add(sex);
        final JTextField gender= new JTextField();
        gender.setBounds(100,200,300,20);
        p1.add(gender);

        male.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ie){
                gender.setText("MALE");
            }
        });

        female.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ie){
            gender.setText("FEMALE");
        }
    });
}