JCheckBox有兩個(gè)狀態(tài):selected和unselected。
當(dāng)我們需要用戶做出多個(gè)選擇時(shí),使用一組JCheckBoxes。
我們可以使用一個(gè)Action對(duì)象,一個(gè)字符串標(biāo)簽,圖標(biāo)和布爾標(biāo)志,以指示是否默認(rèn)選擇創(chuàng)建JCheckbox。
創(chuàng)建沒有標(biāo)簽和沒有圖像的JCheckBox
JCheckBox cb1 = new JCheckBox();
創(chuàng)建JCheckBox文本為“我的選擇"
JCheckBox cb2 = new JCheckBox("My Choice");
創(chuàng)建JCheckBox文本為“我的選擇",并默認(rèn)選擇
JCheckBox cb3 = new JCheckBox("My Choice", true);
要選擇/取消選擇JCheckBox,請(qǐng)調(diào)用setSelected()方法。
要檢查是否被選中,請(qǐng)使用它們的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
使用ActionListener偵聽JCheckBox事件
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; //from w w w. j a v a 2 s . co m import javax.swing.AbstractButton; import javax.swing.JCheckBox; import javax.swing.JFrame; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Iconizing CheckBox"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JCheckBox aCheckBox4 = new JCheckBox("Stuffed Crust"); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { AbstractButton abstractButton = (AbstractButton) actionEvent.getSource(); boolean selected = abstractButton.getModel().isSelected(); System.out.println(selected); // abstractButton.setText(newLabel); } }; aCheckBox4.addActionListener(actionListener); frame.add(aCheckBox4); frame.setSize(300, 200); frame.setVisible(true); } }
使用ItemListener監(jiān)聽JCheckBox事件
import java.awt.Color; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; /* w w w . j a v a 2 s . com*/ import javax.swing.AbstractButton; import javax.swing.JCheckBox; import javax.swing.JFrame; public class JCheckBoxItemListener { public static void main(String args[]) { JFrame frame = new JFrame("Iconizing CheckBox"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JCheckBox aCheckBox4 = new JCheckBox("Stuffed Crust"); 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); } } }; aCheckBox4.addItemListener(itemListener); frame.add(aCheckBox4); frame.setSize(300, 200); frame.setVisible(true); } }
使用ChangeListener監(jiān)聽JCheckBox事件:聽取布防,按下,選擇或釋放狀態(tài)
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; /* ww w . j av a 2 s. co m*/ public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Iconizing CheckBox"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JCheckBox aCheckBox4 = new JCheckBox("Stuffed Crust"); // Define ChangeListener 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); } }; aCheckBox4.addChangeListener(changeListener); frame.add(aCheckBox4); frame.setSize(300, 200); frame.setVisible(true); } }
上面的代碼生成以下結(jié)果。
更多建議: