Getting selected JRadioButton in a container : JRadioButton « Swing « Java Tutorial






Getting selected JRadioButton in a container
import java.awt.Component;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Enumeration;
import java.util.Vector;

import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class JRadioButtonSelectedElements {
  public static void main(String args[]) {
    JFrame frame = new JFrame("Grouping Example");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel(new GridLayout(0, 1));

    ButtonGroup group = new ButtonGroup();
    JRadioButton aRadioButton = new JRadioButton("A");
    JRadioButton bRadioButton = new JRadioButton("B");

    ActionListener crustActionListener = new ActionListener() {
      String lastSelected;

      public void actionPerformed(ActionEvent actionEvent) {
        AbstractButton aButton = (AbstractButton) actionEvent.getSource();
        String label = aButton.getText();
        String msgStart;
        if (label.equals(lastSelected)) {
          msgStart = "Reselected: ";
        } else {
          msgStart = "Selected: ";
        }
        lastSelected = label;
        System.out.println(msgStart + label);
      }
    };

    panel.add(aRadioButton);
    group.add(aRadioButton);
    panel.add(bRadioButton);
    group.add(bRadioButton);

    aRadioButton.addActionListener(crustActionListener);
    bRadioButton.addActionListener(crustActionListener);

    frame.add(panel);
    frame.setSize(300, 200);
    frame.setVisible(true);
    
    System.out.println(getSelectedElements(panel).hasMoreElements());
  }
  public static Enumeration<String> getSelectedElements(Container container) {
    Vector<String> selections = new Vector<String>();
    Component components[] = container.getComponents();
    for (int i=0, n=components.length; i<n; i++) {
      if (components[i] instanceof AbstractButton) {
        AbstractButton button = (AbstractButton)components[i];
        if (button.isSelected()) {
          selections.addElement(button.getText());
        }
      }
    }
    return selections.elements();
  }

}








14.9.JRadioButton
14.9.1.Creating JRadioButton Components
14.9.2.Using JRadioButtonUsing JRadioButton
14.9.3.Grouping JRadioButton Components in a ButtonGroupGrouping JRadioButton Components in a ButtonGroup
14.9.4.Determining the Selected JRadioButton in a Button Group
14.9.5.Listening to JRadioButton Events with an ActionListenerListening to JRadioButton Events with an ActionListener
14.9.6.Reference to the last selected item and check for reselectionReference to the last selected item and check for reselection
14.9.7.Listening to JRadioButton Events with a ChangeListenerListening to JRadioButton Events with a ChangeListener
14.9.8.Listening to JRadioButton Events with an ItemListenerListening to JRadioButton Events with an ItemListener
14.9.9.Event sequence: Action Event, Item Event and Change EventEvent sequence: Action Event, Item Event and Change Event
14.9.10.Getting selected JRadioButton in a containerGetting selected JRadioButton in a container
14.9.11.Customizing JRadioButton Look and Feel