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);
}
}

免费 AI IDE


更多建议: