Các thành phần Component Basic
Lập trình Java Cao Đức Thơng - Trần Minh Tuấn cdthong@ifi.edu.vn, tmtuan@ifi.edu.vn Bài Các thành phần GUI • • • • • • • Một ví dụ đơn giản Mơ hình xử lý kiện Các thành phần GUI Sự kiện chuột Sự kiện bàn phím Bộ quản lý trình bày (layout) Bài tập Ví dụ: Applet tính tổng số // file TinhTong.java import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class TinhTong extends Applet implements ActionListener { private TextField txtNum1, txtNum2; private Button button; // phuong thuc duoc goi applet khoi tao public void init() { txtNum1 = new TextField(8); // tao o nhap so txtNum2 = new TextField(8); // tao o nhap so button = new Button("Tinh Tong"); // tao nut an Ví dụ: Applet tính tổng số // dua cac phan vao applet • Demo add(txtNum1); add(txtNum2); add(button); // khoi tao gia tri cho o nhap txtNum1.setText("0"); txtNum2.setText("0"); }; // dat nghe su kien bam nut button.addActionListener(this); // phuong thuc duoc goi co mot hanh dong xay public void actionPerformed(ActionEvent event) { repaint(); } Ví dụ: Applet tính tổng số • Demo // phuong thuc duoc goi ve lai cua so } public void paint(Graphics g) { int num1, num2, sum; String s1 = txtNum1.getText(); num1 = Integer.parseInt(s1); String s2 = txtNum2.getText(); num2 = Integer.parseInt(s2); sum = num1 + num2; g.drawString("Tong cua hai so la: "+sum, 35, 80); } Ví dụ: Applet tính tổng số • Giải thích applet • TextField Button lớp thuộc gói java.awt • ActionListener ActionEvent lớp thuộc gói java.awt.event • TinhTong cần cài đặt giao diện ActionListener trực tiếp xử lý kiện ấn nút button.addActionListener(this); • Có thể dùng lớp khác để nghe kiện thay cho lớp TinhTong Mơ hình xử lý kiện • Sự kiện (event) phát sinh người dùng tương tác với GUI, ví dụ: di chuyển chuột, ấn nút, nhập liệu văn bản, chọn menu • Thơng tin kiện lưu đối tượng thuộc lớp lớp AWTEvent (gói java.awt.event) • Chương trình xử lý kiện cách đặt “lắng nghe kiện” thành phần GUI Mô hình xử lý kiện • Ba thành phần mơ hình • Event source: nguồn gây kiện, thường thành phần GUI chương trình • Event object: đối tượng lưu thông tin kiện xảy • Event listener: đối tượng nhận thơng tin có kiện xảy • Event source lưu danh sách Event listener thơng báo cho chúng biết có kiện xảy Mơ hình xử lý kiện • Ví dụ: Người dùng ấn nút Tạo thơng tin kiện Component EventObject Thơng báo có kiện xảy EventListener EventListener Việc thông báo kiện xảy thực chất việc gọi phương thức EventListener với đối số truyền vào EventObject Các lớp EventListener cài đặt phương thức để xử lý kiện Một số lớp kiện TextEvent EventObject (java.util) AWTEvent (java.awt) ComponentEvent InputEvent KeyEvent ActionEvent WindowEvent MouseEvent ContainerEvent (java.awt.event) 10 ... adjustmentValueChanged() ComponentEvent ComponentListener componentHidden() componentMoved() componentResized() componentShown() ContainerEvent ContainerListener componentAdded() componentRemoved()... java.awt.event) • Chương trình xử lý kiện cách đặt “lắng nghe kiện” thành phần GUI Mơ hình xử lý kiện • Ba thành phần mơ hình • Event source: nguồn gây kiện, thường thành phần GUI chương trình • Event object:...Bài Các thành phần GUI • • • • • • • Một ví dụ đơn giản Mơ hình xử lý kiện Các thành phần GUI Sự kiện chuột Sự kiện bàn phím Bộ quản lý trình