Khái niệm xử lý sự kiện

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 2 - TS. Vũ Hữu Tiến (Trang 53 - 55)

Trong lập trình giao diện đồ họa, sự kiện (event) được định nghĩa là một hành động được thực hiện bởi người sử dụng. Ví dụ người dùng ấn vào một phím, kích chuột, nhấn lên một nút, một thanh cuốn,...

Xử lý sự kiện (event handling) là quá trình phát hiện sự kiện và thực hiện nhiệm vụ mà nó yêu cầu. Ví dụ khi người dùng nhấn vào nút Exit thì chương trình phải có nhiệm vụ phát hiện việc này và thoát ra khỏi chương trình đang chạy.

Vậy làm thế nào để phát hiện sự kiện và thực hiện nhiệm vụ ? Câu trả lời là phần mềm phải luôn nằm trong một vòng lặp để chờ sự kiện xảy ra để thực hiện. Tuy nhiên, người lập trình sẽ không phải viết vòng lặp này mà Java đã hỗ trợ việc này cho người lập trình. Cụ thể, Java sẽ luôn ở trạng thái lắng nghe sự kiện (event listening), khi sự kiện xảy ra, Java sẽ tự động gọi đến phương thức xử lý do người lập trình viết. Đây được gọi là mô hình điều khiển theo sự kiện (event – drivent). Mô hình này được mô tả như sau :

119

Hình 7. 4 Mô hình tuần tự xử lý sự kiện Mô hình trên gồm 2 thành phần chính :

Nguồn tạo ra sự kiện (Source): đây là một thành phần giao diện mà trên đó sự kiện

xuất hiện. Ví dụ như button, textfield,… Source chịu trách nhiệm cung cấp thông tin về sự kiện đã xảy ra tới bộ xử lý Handler của nó.

Khối xử lý sự kiện (Listener): Còn được biết như là Event Handler. Listener chịu

trách nhiệm tạo phản hồi tới một sự kiện. Theo quan điểm của Java, Listener cũng là một đối tượng. Khi một sự kiện đã được nhận, Listener xử lý sự kiện đó và sau đó trả về kết quả.

Các bước hoạt động của mô hình :

1. Thành phần giao diện đăng ký khối xử lý sự kiện tương ứng để khối xử lý sự kiện có thể xử lý sự kiện phù hợp với thành phần giao diện đó. Về bản chất, khối xử lý sự kiện là các lớp giao diện được cung cấp bởi Java. Trong các lớp giao diện này có các phương thức để xử lý các sự kiện được tạo ra bởi thành phần giao diện.

Ví dụ : Lớp xử lý sự kiện MouseListener có các phương thức để xử lý các sự kiện liên quan đến chuột :

public interface MouseListener {

// Xử lý sự kiện khi chuột được ấn và giữ

public void mousePressed(MouseEvent evt); // Xử lý sự kiện khi chuột được thả

public void mouseReleased(MouseEvent evt); // Xử lý sự kiện khi chuột được ấn và thả

public void mouseClicked(MouseEvent evt);

// Xử lý sự kiện khi con trỏ chuột được đặt vào phạm vi của thành phần giao diện

120

public void mouseEntered(MouseEvent evt);

// Xử lý sự kiện khi con trỏ chuột được kéo ra khỏi phạm vi của thành phần giao diện

public void mouseExited(MouseEvent evt); }

2. Thành phần sự kiện thay đổi trạng thái khi người dùng tác động. 3. Thành phần giao diện tạo ra đối tượng tương ứng với sự kiện xảy ra.

4. Thành phần giao diện gọi phương thức tương ứng của lớp xử lý sự kiện để xử lý và đối tượng vừa được tạo ra sẽ được truyền vào phương thức đó để xử lý.

Một phần của tài liệu Bài giảng Ngôn ngữ lập trình Java: Phần 2 - TS. Vũ Hữu Tiến (Trang 53 - 55)

Tải bản đầy đủ (PDF)

(65 trang)