valor texto seleccionar seleccionado radiobutton por para obtener funciona ejemplo defecto como codigo asignar java swing

java - texto - Cómo obtengo qué JRadioButton se selecciona de un ButtonGroup



radio button java eclipse (12)

Agregue los botones de radio a un grupo de botones y luego:

buttonGroup.getSelection (). getActionCommand

Tengo una aplicación de swing que incluye botones de opción en un formulario. Tengo el ButtonGroup , sin embargo, mirando los métodos disponibles, parece que no puedo obtener el nombre del JRadioButton seleccionado. Esto es lo que puedo decir hasta ahora:

  • Desde ButtonGroup, puedo realizar un getSelection() para devolver el ButtonModel . A partir de ahí, puedo realizar un getActionCommand , pero eso no parece funcionar siempre. Intenté diferentes pruebas y obtuve resultados impredecibles.

  • También desde ButtonGroup , puedo obtener una enumeración de getElements() . Sin embargo, entonces tendría que pasar por cada botón solo para verificar y ver si es el seleccionado.

¿Hay alguna manera más fácil de averiguar qué botón se ha seleccionado? Estoy programando esto en Java 1.3.1 y Swing.


Debe agregar setActionCommand al JRadioButton luego solo hacer:

String entree = entreeGroup.getSelection().getActionCommand();

Ejemplo:

java = new JRadioButton("Java"); java.setActionCommand("Java"); c = new JRadioButton("C/C++"); c.setActionCommand("c"); System.out.println("Selected Radio Button: " + buttonGroup.getSelection().getActionCommand());


El siguiente código muestra qué JRadiobutton se selecciona de Buttongroup al hacer clic en un botón.
Se realiza al recorrer todos los JRadioButtons en un grupo de botones en particular.

JRadioButton firstRadioButton=new JRadioButton("Female",true); JRadioButton secondRadioButton=new JRadioButton("Male"); //Create a radio button group using ButtonGroup ButtonGroup btngroup=new ButtonGroup(); btngroup.add(firstRadioButton); btngroup.add(secondRadioButton); //Create a button with text ( What i select ) JButton button=new JButton("What i select"); //Add action listener to created button button.addActionListener(this); //Get selected JRadioButton from ButtonGroup public void actionPerformed(ActionEvent event) { if(event.getSource()==button) { Enumeration<AbstractButton> allRadioButton=btngroup.getElements(); while(allRadioButton.hasMoreElements()) { JRadioButton temp=(JRadioButton)allRadioButton.nextElement(); if(temp.isSelected()) { JOptionPane.showMessageDialog(null,"You select : "+temp.getText()); } } } }


Puede poner y activar la acción de cada botón de radio (cadena).

this.jButton1.setActionCommand("dog"); this.jButton2.setActionCommand("cat"); this.jButton3.setActionCommand("bird");

Suponiendo que ya están en un grupo de botones (state_group en este caso), puede obtener el botón de opción seleccionado de esta manera:

String selection = this.state_group.getSelection().getActionCommand();

Espero que esto ayude


Puede usar getSelectedObjects () de ItemSelectable (superinterfaz de ButtonModel) que devuelve la lista de elementos seleccionados. En el caso de un grupo de botones de radio, solo puede ser uno o ninguno.


Simplemente JRadioButtons sus JRadioButtons y llamo isSelected() . Si realmente quieres ir desde ButtonGroup , solo puedes acceder a los modelos. Podría hacer coincidir los modelos con los botones, pero luego, si tiene acceso a los botones, ¿por qué no usarlos directamente?


Sugiero ir directamente al enfoque de modelo en Swing. Después de colocar el componente en el panel y el administrador de disposición, no se moleste en mantener una referencia específica al mismo.

Si realmente desea el widget, puede probar cada uno con isSelected o mantener un Map<ButtonModel,JRadioButton> .


Tengo un problema similar y lo resuelvo con esto:

import java.util.Enumeration; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; public class GroupButtonUtils { public String getSelectedButtonText(ButtonGroup buttonGroup) { for (Enumeration<AbstractButton> buttons = buttonGroup.getElements(); buttons.hasMoreElements();) { AbstractButton button = buttons.nextElement(); if (button.isSelected()) { return button.getText(); } } return null; } }

Devuelve el texto del botón seleccionado.


Use el método isSelected() . Le dirá el estado de su radioButton. Utilizándolo en combinación con un bucle (digamos for loop) puede encontrar cuál ha sido seleccionado.


import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyJRadioButton extends JFrame implements ActionListener { JRadioButton rb1,rb2; //components ButtonGroup bg; MyJRadioButton() { setLayout(new FlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); rb1=new JRadioButton("male"); rb2=new JRadioButton("female"); //add radio button to button group bg=new ButtonGroup(); bg.add(rb1); bg.add(rb2); //add radio buttons to frame,not button group add(rb1); add(rb2); //add action listener to JRadioButton, not ButtonGroup rb1.addActionListener(this); rb2.addActionListener(this); pack(); setVisible(true); } public static void main(String[] args) { new MyJRadioButton(); //calling constructor } @Override public void actionPerformed(ActionEvent e) { System.out.println(((JRadioButton) e.getSource()).getActionCommand()); }

}


import javax.swing.Action; import javax.swing.ButtonGroup; import javax.swing.Icon; import javax.swing.JRadioButton; import javax.swing.JToggleButton; public class RadioButton extends JRadioButton { public class RadioButtonModel extends JToggleButton.ToggleButtonModel { public Object[] getSelectedObjects() { if ( isSelected() ) { return new Object[] { RadioButton.this }; } else { return new Object[0]; } } public RadioButton getButton() { return RadioButton.this; } } public RadioButton() { super(); setModel(new RadioButtonModel()); } public RadioButton(Action action) { super(action); setModel(new RadioButtonModel()); } public RadioButton(Icon icon) { super(icon); setModel(new RadioButtonModel()); } public RadioButton(String text) { super(text); setModel(new RadioButtonModel()); } public RadioButton(Icon icon, boolean selected) { super(icon, selected); setModel(new RadioButtonModel()); } public RadioButton(String text, boolean selected) { super(text, selected); setModel(new RadioButtonModel()); } public RadioButton(String text, Icon icon) { super(text, icon); setModel(new RadioButtonModel()); } public RadioButton(String text, Icon icon, boolean selected) { super(text, icon, selected); setModel(new RadioButtonModel()); } public static void main(String[] args) { RadioButton b1 = new RadioButton("A"); RadioButton b2 = new RadioButton("B"); ButtonGroup group = new ButtonGroup(); group.add(b1); group.add(b2); b2.setSelected(true); RadioButtonModel model = (RadioButtonModel)group.getSelection(); System.out.println(model.getButton().getText()); } }


jRadioOne = new javax.swing.JRadioButton(); jRadioTwo = new javax.swing.JRadioButton(); jRadioThree = new javax.swing.JRadioButton();

... luego para cada botón:

buttonGroup1.add(jRadioOne); jRadioOne.setText("One"); jRadioOne.setActionCommand(ONE); jRadioOne.addActionListener(radioButtonActionListener);

...oyente

ActionListener radioButtonActionListener = new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioButtonActionPerformed(evt); } };

... haz lo que necesites como respuesta al evento

protected void radioButtonActionPerformed(ActionEvent evt) { System.out.println(evt.getActionCommand()); }