復選框提供一個制造單一選擇開關的方法;它包括一個小框和一個標簽。典型的復選框有一個小的“X”(或者它設置的其它類型)或是空的,這依靠項目是否被選擇來決定的。
我們會使用構建器正常地創建一個復選框,使用它的標簽來充當它的自變量。如果我們在創建復選框後想讀出或改變它,我們能夠獲取和設置它的狀態,同樣也能獲取和設置它的標簽。注意,復選框的大寫是與其它的控制相矛盾的。
無論何時一個復選框都可以設置和清除一個事件指令,我們可以捕捉同樣的方法做一個按鈕。在下面的例子裡使用一個文字區域枚舉所有被選中的復選框:
//: CheckBox1.java
// Using check boxes
import java.awt.*;
import java.applet.*;
public class CheckBox1 extends Applet {
TextArea t = new TextArea(6, 20);
Checkbox cb1 = new Checkbox("Check Box 1");
Checkbox cb2 = new Checkbox("Check Box 2");
Checkbox cb3 = new Checkbox("Check Box 3");
public void init() {
add(t); add(cb1); add(cb2); add(cb3);
}
public boolean action (Event evt, Object arg) {
if(evt.target.equals(cb1))
trace("1", cb1.getState());
else if(evt.target.equals(cb2))
trace("2", cb2.getState());
else if(evt.target.equals(cb3))
trace("3", cb3.getState());
else
return super.action(evt, arg);
return true;
}
void trace(String b, boolean state) {
if(state)
t.appendText("Box " + b + " Set\n");
else
t.appendText("Box " + b + " Cleared\n");
}
} ///:~
trace()方法將選中的復選框名和當前狀態用appendText()發送到文字區域中去,所以我們看到一個累積的被選中的復選框和它們的狀態的列表。