Java Swing JToggleButton
Java Swing教程 - Java Swing JToggleButton
JToggleButton是一个双状态按钮。这两个状态被选择和取消选择。
当我们按下切换按钮时,它在被按下和未按下之间切换。
JButton用于启动动作,而JToggleButton用于从可能的选项列表中选择一个选项。
通常,我们使用一组JToggleButtons让用户从互斥选择列表中选择一个选项。
我们可以使用Action对象,字符串标签,图标,以及一个布尔标志,用于指示是否默认选择创建JToggleButton。
创建一个没有标签,没有图像的JToggleButton
JToggleButton tb1 = new JToggleButton();
创建JToggleButton,文本为“我的选择"
JToggleButton tb2 = new JToggleButton("My Choice");
创建JToggleButton,文本为“我的选择"并默认选择
JToggleButton tb3 = new JToggleButton("My Choice", true);
要选择/取消选择JToggleButton,可以调用setSelected()方法。
要检查是否被选中,请使用它们的isSelected()方法。
以下代码显示如何使用这些方法:
tb3.setSelected(true); // Select tb3 boolean b1 = tb3.isSelected(); // will store true in b1 tb3.setSelected(false); // Unselect tb3 boolean b2 = tb3.isSelected(); // will store false in b2
如果选择是互斥的,我们必须在按钮组中分组所有选择。ButtonGroup类的一个实例表示一个按钮组。
我们可以通过分别使用add()和remove()方法向按钮组添加和删除JToggleButton。
最初,按钮组的所有成员都未选中。
要形成一个按钮组,我们需要将所有互斥选择组件添加到ButtonGroup类的一个对象。 我们不会向容器添加ButtonGroup对象。
我们必须向容器中添加所有选择的组件。
动作侦听器
下面的代码显示了如何使用ActionListener监听JToggleButton事件。
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /*from ww w . j a v a2s . c o m*/ import javax.swing.AbstractButton; import javax.swing.JFrame; import javax.swing.JToggleButton; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Selecting Toggle"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JToggleButton toggleButton = new JToggleButton("Toggle Button"); // Define ActionListener 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"); } }; // Attach Listeners toggleButton.addActionListener(actionListener); frame.add(toggleButton, BorderLayout.NORTH); frame.setSize(300, 125); frame.setVisible(true); } }
项目侦听器
下面的代码显示了如何使用ItemListener监听JToggleButton事件。
import java.awt.BorderLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; // ww w. j a va 2 s. c om import javax.swing.JFrame; import javax.swing.JToggleButton; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Selecting Toggle"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JToggleButton toggleButton = new JToggleButton("Toggle Button"); 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"); } } }; // Attach Listeners toggleButton.addItemListener(itemListener); frame.add(toggleButton, BorderLayout.NORTH); frame.setSize(300, 125); frame.setVisible(true); } }
更改侦听器
下面的代码显示了如何使用ChangeListener监听JToggleButton事件。它监听其布防,按下和选定属性的更改。
/*from w ww . j a va 2 s.c om*/ import java.awt.BorderLayout; 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 Main { public static void main(String args[]) { JFrame frame = new JFrame("Selecting Toggle"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JToggleButton toggleButton = new JToggleButton("Toggle Button"); 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); } }; // Attach Listeners toggleButton.addChangeListener(changeListener); frame.add(toggleButton, BorderLayout.NORTH); frame.setSize(300, 125); frame.setVisible(true); } }
更多建议: