Java by API/javax.swing/ButtonModel

Материал из Java эксперт
Перейти к: навигация, поиск

ButtonModel: getActionCommand()

   <source lang="java">

import java.awt.Container; 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.JFrame; import javax.swing.JLabel; import javax.swing.JRadioButton; public class MainClass {

 public static void main(String[] args) {
   JRadioButton dem = new JRadioButton("Bill", false);
   dem.setActionCommand("Bill");
   JRadioButton rep = new JRadioButton("Bob", false);
   rep.setActionCommand("Bob");
   JRadioButton ind = new JRadioButton("Ross", false);
   ind.setActionCommand("Ross");
   final ButtonGroup group = new ButtonGroup();
   group.add(dem);
   group.add(rep);
   group.add(ind);
   class VoteActionListener implements ActionListener {
     public void actionPerformed(ActionEvent ex) {
       String choice = group.getSelection().getActionCommand();
       System.out.println("ACTION Candidate Selected: " + choice);
     }
   }
   class VoteItemListener implements ItemListener {
     public void itemStateChanged(ItemEvent ex) {
       String item = ((AbstractButton) ex.getItemSelectable()).getActionCommand();
       boolean selected = (ex.getStateChange() == ItemEvent.SELECTED);
       System.out.println("ITEM Candidate Selected: " + selected + " Selection: " + item);
     }
   }
   ActionListener al = new VoteActionListener();
   dem.addActionListener(al);
   rep.addActionListener(al);
   ind.addActionListener(al);
   ItemListener il = new VoteItemListener();
   dem.addItemListener(il);
   rep.addItemListener(il);
   ind.addItemListener(il);
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   Container c = frame.getContentPane();
   c.setLayout(new GridLayout(4, 1));
   c.add(new JLabel("Please Cast Your Vote"));
   c.add(dem);
   c.add(rep);
   c.add(ind);
   frame.pack();
   frame.setVisible(true);
 }

}

      </source>
   
  
 
  



ButtonModel: isArmed()

   <source lang="java">

import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class MainClass {

 public static void main(String[] a) {
   final String DESELECTED_LABEL = "Deselected";
   final String SELECTED_LABEL = "Selected";
   
   JFrame frame = new JFrame("Selecting CheckBox");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JCheckBox checkBox = new JCheckBox(DESELECTED_LABEL);
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       AbstractButton abstractButton = (AbstractButton) actionEvent
           .getSource();
       boolean selected = abstractButton.getModel().isSelected();
       String newLabel = (selected ? SELECTED_LABEL : DESELECTED_LABEL);
       abstractButton.setText(newLabel);
     }
   };
   ChangeListener changeListener = new ChangeListener() {
     public void stateChanged(ChangeEvent changeEvent) {
       AbstractButton abstractButton = (AbstractButton) changeEvent
           .getSource();
       ButtonModel buttonModel = abstractButton.getModel();
       boolean armed = buttonModel.isArmed();
       boolean pressed = buttonModel.isPressed();
       boolean selected = buttonModel.isSelected();
       System.out.println("Changed: " + armed + "/" + pressed + "/" + selected);
     }
   };
   ItemListener itemListener = new ItemListener() {
     public void itemStateChanged(ItemEvent itemEvent) {
       AbstractButton abstractButton = (AbstractButton) itemEvent.getSource();
       Color foreground = abstractButton.getForeground();
       Color background = abstractButton.getBackground();
       int state = itemEvent.getStateChange();
       if (state == ItemEvent.SELECTED) {
         abstractButton.setForeground(background);
         abstractButton.setBackground(foreground);
       }
     }
   };
   checkBox.addActionListener(actionListener);
   checkBox.addChangeListener(changeListener);
   checkBox.addItemListener(itemListener);
   checkBox.setMnemonic(KeyEvent.VK_S);
   frame.add(checkBox, BorderLayout.NORTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}

      </source>
   
  
 
  



ButtonModel: isPressed()

   <source lang="java">

import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class MainClass {

 public static void main(String[] a) {
   final String DESELECTED_LABEL = "Deselected";
   final String SELECTED_LABEL = "Selected";
   
   JFrame frame = new JFrame("Selecting CheckBox");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JCheckBox checkBox = new JCheckBox(DESELECTED_LABEL);
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       AbstractButton abstractButton = (AbstractButton) actionEvent
           .getSource();
       boolean selected = abstractButton.getModel().isSelected();
       String newLabel = (selected ? SELECTED_LABEL : DESELECTED_LABEL);
       abstractButton.setText(newLabel);
     }
   };
   ChangeListener changeListener = new ChangeListener() {
     public void stateChanged(ChangeEvent changeEvent) {
       AbstractButton abstractButton = (AbstractButton) changeEvent
           .getSource();
       ButtonModel buttonModel = abstractButton.getModel();
       boolean armed = buttonModel.isArmed();
       boolean pressed = buttonModel.isPressed();
       boolean selected = buttonModel.isSelected();
       System.out.println("Changed: " + armed + "/" + pressed + "/" + selected);
     }
   };
   ItemListener itemListener = new ItemListener() {
     public void itemStateChanged(ItemEvent itemEvent) {
       AbstractButton abstractButton = (AbstractButton) itemEvent.getSource();
       Color foreground = abstractButton.getForeground();
       Color background = abstractButton.getBackground();
       int state = itemEvent.getStateChange();
       if (state == ItemEvent.SELECTED) {
         abstractButton.setForeground(background);
         abstractButton.setBackground(foreground);
       }
     }
   };
   checkBox.addActionListener(actionListener);
   checkBox.addChangeListener(changeListener);
   checkBox.addItemListener(itemListener);
   checkBox.setMnemonic(KeyEvent.VK_S);
   frame.add(checkBox, BorderLayout.NORTH);
   frame.setSize(300, 100);
   frame.setVisible(true);
 }

}

      </source>
   
  
 
  



ButtonModel: isSelected()

   <source lang="java">

import java.awt.BorderLayout; 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.ButtonModel; import javax.swing.JFrame; import javax.swing.JToggleButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class MainClass {

 public static void main(String[] a) {
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JToggleButton toggleButton = new JToggleButton("Selected");
   ActionListener actionListener = new ActionListener() {
     public void actionPerformed(ActionEvent actionEvent) {
       AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();
       boolean selected = abstractButton.getModel().isSelected();
       System.out.println("Action - selected=" + selected + "\n");
     }
   };
   ChangeListener changeListener = new ChangeListener() {
     public void stateChanged(ChangeEvent changeEvent) {
       AbstractButton abstractButton = (AbstractButton) changeEvent.getSource();
       ButtonModel buttonModel = abstractButton.getModel();
       boolean armed = buttonModel.isArmed();
       boolean pressed = buttonModel.isPressed();
       boolean selected = buttonModel.isSelected();
       System.out.println("Changed: " + armed + "/" + pressed + "/" + selected);
     }
   };
   ItemListener itemListener = new ItemListener() {
     public void itemStateChanged(ItemEvent itemEvent) {
       int state = itemEvent.getStateChange();
       if (state == ItemEvent.SELECTED) {
         System.out.println("Selected");
       } else {
         System.out.println("Deselected");
       }
     }
   };
   toggleButton.addActionListener(actionListener);
   toggleButton.addChangeListener(changeListener);
   toggleButton.addItemListener(itemListener);
   frame.add(toggleButton, BorderLayout.NORTH);
   JToggleButton toggleButton2 = new JToggleButton("Focused");
   frame.add(toggleButton2, BorderLayout.CENTER);
   JToggleButton toggleButton3 = new JToggleButton("Not Selected");
   frame.add(toggleButton3, BorderLayout.SOUTH);
   frame.setSize(300, 125);
   frame.setVisible(true);
 }

}

      </source>