Checkbox và Radio button là các đối tượng dùng đểđánh dấu, hoặc chọn thông tin. Sự khác biệt giữa chúng là checkbox cho phép chọn đồng thời nhiều ô cùng lúc, trong khi đó, trong mỗi nhóm radio button, chỉ cho phép chọn một thông tin.
Phương thức chung của hai lớp này:
• setState(boolean)/getState(): Truy nhập đến trạng thái của nút. Các phương thức khởi tạo Checkbox:
• Checkbox(): Khởi tạo một ô đánh dấu rỗng.
• Checkbox(String): Khởi tạo ô đánh dấu có nhãn xác định.
• Checkbox(String, boolean): Khởi tạo ô đánh dấu có nhãn, có trạng thái xác định.
Các phương thức khởi tạo Radio button tương tự như Checkbox, ngoại trừ việc phải chỉ ra nhóm của các radio button:
• Checkbox(String, CheckboxGroup, boolean); Xử lí sự kiện thay đổi trạng thái nút chọn:
• Kiểu sự kiện: ItemEvent • Cài đặt giao tiếp: ItemListener
• Phương thức xủa lí: itemStateChange(ItemEvent)
Chương trình 6.8 minh hoạ việc dùng một nhóm radio button gồm ba nút, tương ứng với ba màu (RED, BLUE, GREEN). Khi click vào nút nào, thì màu nền sẽđổi theo màu đó.
Chương trình 6.8
package vidu.chuong6; import java.awt.*;
import java.awt.event.*;
public class RadioDemo extends Frame implements ItemListener{ Checkbox cbxRed, cbxBlue, cbxGreen;
public RadioDemo(){
super(“Radio demo!”);
//Chế độ hiển thị 3 dòng, 1 cột
this.setLayout(new GridLayout(3,1));
CheckboxGroup cbxg = new CheckboxGroup(); // Nhóm radio cbxRed = new Checkbox(“Red”, cbxg, true); // Nút red
cbxRed.addItemListener(this); // Bắt sự kiện
this.add(cbxRed);
cbxBlue = new Checkbox(“Blue”, cbxg, false);// Nút blue
cbxBlue.addItemListener(this); // Bắt sự kiện
this.add(cbxBlue);
cbxGreen = new Checkbox(“Green”, cbxg, false);// Nút green
cbxGreen.addItemListener(this); // Bắt sự kiện
this.add(cbxGreen);
// Phương thức bắt sự kiện click vào nút đóng frame this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){ System.exit(0);
} }); }
/* Phương thức xử lí sự kiện thay đổi trạng thái nút */ public void itemStateChange(ItemEvent ie){
if(ie.getStateChanged() == ItemEvent.SELECTED){ String item = (String)ie.getItem();
if(item.equals(“Red”)) // Đổi màu red this.setBackground(Color.red);
if(item.equals(“Blue”)) // Đổi màu blue
this.setBackground(Color.blue);
if(item.equals(“Green”)) // Đổi màu green
this.setBackground(Color.green);
this.repaint(); // Vẽ lại màu nền
} }
public static void main(String[] args) { // Khai báo đối tượng demo
RadioDemo myFrame = new RadioDemo();
myFrame.setSize(300,150); // Định kích cỡ frame
myFrame.setVisible(true); // Hiển thị frame
} }
Hình 6.7: Kết quả demo Radio Button