Mega Code Archive

 
Categories / Java Tutorial / Swing
 

Event sequence

import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; import javax.swing.ButtonModel; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class JRadioButtonEventSequence {   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 actionListener = 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);       }     };     ItemListener itemListener = new ItemListener() {       String lastSelected;       public void itemStateChanged(ItemEvent itemEvent) {         AbstractButton aButton = (AbstractButton)itemEvent.getSource();         int state = itemEvent.getStateChange();         String label = aButton.getText();         String msgStart;         if (state == ItemEvent.SELECTED) {           if (label.equals(lastSelected)) {             msgStart = "Reselected -> ";           } else {             msgStart = "Selected -> ";           }           lastSelected = label;         } else {           msgStart = "Deselected -> ";         }         System.out.println(msgStart + label);       }     };     ChangeListener changeListener = new ChangeListener() {       public void stateChanged(ChangeEvent changEvent) {         AbstractButton aButton = (AbstractButton)changEvent.getSource();         ButtonModel aModel = aButton.getModel();         boolean armed = aModel.isArmed();         boolean pressed = aModel.isPressed();         boolean selected = aModel.isSelected();         System.out.println("Changed: " + armed + "/" + pressed + "/" +           selected);       }     };     panel.add(aRadioButton);     group.add(aRadioButton);     panel.add(bRadioButton);     group.add(bRadioButton);     aRadioButton.addChangeListener(changeListener);     bRadioButton.addChangeListener(changeListener);     aRadioButton.addActionListener(actionListener);     bRadioButton.addActionListener(actionListener);     aRadioButton.addItemListener(itemListener);     bRadioButton.addItemListener(itemListener);     frame.add(panel);     frame.setSize(300, 200);     frame.setVisible(true);   }    }