检查框提供了一种用以进行开/关选择的方式。它包含了一个小方框和一个标签。这个方框
中通常是有一个“x”标记(或者其它能表明被选中的标记)或者为空,这取决于检查框是
否被选中。
通常你会使用接受标签作为参数的构造器来创建JCheckBox。你可以获取和设置状态,也
可以获取和设置其标签,甚至可以在JCheckBox对象已经建立之后改变标签。
当 JCheckBox 被选中或清除时,将发生一个事件,你可以用与对付按钮相同的方法来捕获
这个事件:使用 ActionListener。在下面的例子中,将枚举所有被选中的检查框,然后在
JTextArea 里显示:
//: c14:CheckBoxes.java
// Using JCheckBoxes.
// <applet code=CheckBoxes width=200 height=200></applet>
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.bruceeckel.swing.*;
public class CheckBoxes extends JApplet {
private JTextArea t = new JTextArea(6, 15);
private JCheckBox
cb1 = new JCheckBox("Check Box 1"),
cb2 = new JCheckBox("Check Box 2"),
cb3 = new JCheckBox("Check Box 3");
public void init() {
cb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("1", cb1);
}
});
cb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("2", cb2);
}
});
cb3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("3", cb3);
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(t));
cp.add(cb1);
cp.add(cb2);
cp.add(cb3);
}
private void trace(String b, JCheckBox cb) {
if(cb.isSelected())
t.append("Box " + b + " Set\n");
else
t.append("Box " + b + " Cleared\n");
}
public static void main(String[] args) {
Console.run(new CheckBoxes(), 200, 200);
}
} ///:~
trace( )方法中使用了append( ),用来把检查框的名称及其状态显示到JtextArea中,所
以你看到一个积累的检查框列表,包括了检查框名称及其状态。
中通常是有一个“x”标记(或者其它能表明被选中的标记)或者为空,这取决于检查框是
否被选中。
通常你会使用接受标签作为参数的构造器来创建JCheckBox。你可以获取和设置状态,也
可以获取和设置其标签,甚至可以在JCheckBox对象已经建立之后改变标签。
当 JCheckBox 被选中或清除时,将发生一个事件,你可以用与对付按钮相同的方法来捕获
这个事件:使用 ActionListener。在下面的例子中,将枚举所有被选中的检查框,然后在
JTextArea 里显示:
//: c14:CheckBoxes.java
// Using JCheckBoxes.
// <applet code=CheckBoxes width=200 height=200></applet>
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import com.bruceeckel.swing.*;
public class CheckBoxes extends JApplet {
private JTextArea t = new JTextArea(6, 15);
private JCheckBox
cb1 = new JCheckBox("Check Box 1"),
cb2 = new JCheckBox("Check Box 2"),
cb3 = new JCheckBox("Check Box 3");
public void init() {
cb1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("1", cb1);
}
});
cb2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("2", cb2);
}
});
cb3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
trace("3", cb3);
}
});
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(t));
cp.add(cb1);
cp.add(cb2);
cp.add(cb3);
}
private void trace(String b, JCheckBox cb) {
if(cb.isSelected())
t.append("Box " + b + " Set\n");
else
t.append("Box " + b + " Cleared\n");
}
public static void main(String[] args) {
Console.run(new CheckBoxes(), 200, 200);
}
} ///:~
trace( )方法中使用了append( ),用来把检查框的名称及其状态显示到JtextArea中,所
以你看到一个积累的检查框列表,包括了检查框名称及其状态。