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();
}
}

Sé que debería añadir un actionlistener para obtener los valores seleccionados , pero ¿cuál es el contenido que debo código en el actionlistener ?

  • creo que wonna saber cómo conseguir el botón de opción seleccionado. Es este @Adriel??
  • Sí, por ejemplo si he seleccionado Masculino, y el campo de texto que debe mostrar «Macho».
  • Ver este ejemplo básico en: java2everyone.blogspot.com/2009/01/…
InformationsquelleAutor Adriel | 2013-10-18

3 Comentarios

  1. 4

    Sé que debería añadir un actionlistener para obtener los valores seleccionados ,
    pero ¿cuál es el contenido que debo código en el actionlistener?

    Dentro de su ActionListener usted puede pedir que la fuente de la acción de evento y, a continuación, establecer el texto del campo de texto según sea necesario:

    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);

    Nota lectura sugerida EventObject.getSource()

  2. 3

    Usted tiene que llamar a addActionListener() en el elemento que desea escuchar, en este caso parece que desea llamar en el botón enviar. La acción de escucha, que se pasa como parámetro, a continuación, tiene el código que se desea ejecutar. Echa un vistazo al tutorial:

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

    Para cada elemento de formulario usted tendrá que buscar en la API para entender lo que el método a llamar para obtener el valor correcto. Por ejemplo: getText() o isSelected().

    • +1 🙂 ………… o ItemListener
  3. 0

    crear su propia acción listner como este:

    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() );
    
        }
    
    }

    Y, a continuación, agregarlo a sus botones de radio:

    jrbMale.addActionListener( new CustomActionListener( jrbMale, jtfAnswer ) );
    jrbFemale.addActionListener( new CustomActionListener( jrbFemale, jtfAnswer ) );

Dejar respuesta

Please enter your comment!
Please enter your name here