http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Xử lý kiện Java Swing Sự kiện (Event) gì? Đó thay đổi trạng thái đối tượng, chẳng hạn kiện miêu tả thay đổi trạng thái cảu source Các kiện tạo tương tác người dùng với thành phần UI Ví dụ việc nhấn vào nút button, di chuyển chuột, nhập ký tự thơng qua bàn phím, … Các kiện phân chia thành hai loại sau: Foreground Event: Những kiện yêu cầu tương tác trực tiếp người dùng Chúng tạo tương tác người dùng với thành phần đồ họa Graphical User Interface Ví dụ nhấn vào nút, di chuyển chuật, chọn item từ list, … Background Event: Các kiện yêu cầu tương tác người dùng cuối cùng, ví dụ tín hiệu ngắt hệ điều hành, hardware software failure … Xử lý kiện (Event Handling) gì? Xử lý kiện (Event Handling) kỹ thuật kiểm sốt kiện định cần thực kiện xảy Kỹ thuật có code, mà biết Event Handler, thực thi kiện xảy Java sử dụng Delegation Event Model để xử lý kiện Model định nghĩa kỹ thuật chuẩn để tạo xử lý kiện Model bao gồm hai thành phần quan trọng sau: Source: đối tượng mà kiện xuất Source chịu trách nhiệm cung cấp thông tin kiện xảy tới xử lý Handler Listener: Còn biết Event Handler Listener chịu trách nhiệm tạo phản hồi tới kiện Theo quan điểm Java, Listener đối tượng Listener đợi tới nhận kiện Khi kiện nhận, Listener xử lý kiện sau trả kết Lớp EventObject Java Swing Đây lớp gốc (root class) từ tất đối tượng trạng thái kiện kế thừa Tất kiện xây dựng với tham chiếu tới đối tượng đó, source Lớp định nghĩa java.util package Cú pháp khai báo lớp java.util.EventObject sau: public class EventObject extends Object http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com implements Serializable Lớp EventObject có trường protected Object source Đây đối tượng mà kiện xảy Lớp EventObject có constructor EventObject(Object source) dùng để xây dụng nguyên mẫu kiện Các phương thức lớp EventObject: Object getSource(): Đối tượng mà kiện xảy String toString(): Trả biểu diễn chuỗi EventObject Lớp kế thừa phương thức từ lớp java.lang.Object Các lớp Event Java Swing Ngoài lớp EventObject trên, phần giới thiệu cho bạn số Event Class sử dụng phổ biến khác Lớp AWTEvent Đây lớp kiện gốc (root class) cho tất kiện AWTEvent Lớp lớp thay lớp ban đầu java.awt.Event Lớp định nghĩa java.awt package Lớp AWTEvent có phương thức getID() sử dụng để xác định kiểu kiện Cú pháp khai báo lớp java.awt.AWTEvent là: public class AWTEvent extends EventObject Lớp ActionEvent Lớp ActionEvent định nghĩa java.awt.event package ActionEvent tạo nút nhấn item danh sách nhấn đúp Cú pháp khai báo cho lớp ActionEvent sau: public class ActionEvent extends AWTEvent http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Lớp InputEvent Lớp InputEvent lớp kiện gốc (root class) cho tất kiện lien quan tới đầu vào (cấp độ thành phần) Các kiện liên quan tới đầu vào (input event) phân phối Listener trước chúng xử lý cách thông thường source, nơi chúng sinh Điều cho phép Listener lớp thành phần “consume” kiện source không xử lý chúng theo phương thức mặc định Cú pháp khai báo lớpjava.awt.event.InputEvent là: public abstract class InputEvent extends ComponentEvent Lớp KeyEvent Sự kiện liên quan tới phím (Key Event) tạo bạn nhập ký tự Có ba kiểu key event, mà biểu diễn nguyên, chúng là: KEY_PRESSED KEY_RELASED KEY_TYPED Cú pháp khai báo lớp java.awt.evetn.KeyEvent sau: public class KeyEvent extends InputEvent Lớp MouseEvent Sự kiện hoạt động liên quan tới chuột xảy thành phần Sự kiện tầm thấp tạo đối tượng Component cho kiện liên quan tới chuột di chuyển chuột, chẳng hạn nút chuột nhấn, nhả ra, click (nhấn nhả ra), di chuyển chuột, kéo chuột, … Cú pháp khai báo cho lớp java.awt.event.MouseEvent: public class MouseEvent extends InputEvent http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Lớp WindowEvent Đối tượng lớp biểu diễn thay đổi trạng thái cửa sổ Sự kiện tầm thấp tạo đối tượng Window mở, đóng, kích hoạt, … trọng tâm focus chuyển vào Window Cú pháp khai báo lớp java.awt.event.WindowEvent là: public class WindowEvent extends ComponentEvent Lớp AdjustmentEvent Lớp AdjustmentEvent biểu diễn kiện liên quan tới chỉnh tạo đối tượng chỉnh (Adjustable object) Cú pháp khai báo lớp java.awt.event.AdjustmentEvent sau: public class AdjustmentEvent extends AWTEvent Lớp ComponentEvent Lớp ComponentEvent biểu diễn thành phần bị di chuyển, thay đổi kích cỡ, thay đổi tính nhìn thấy Cú pháp khai báo lớp java.awt.event.ComponentEvent là: public class ComponentEvent extends AWTEvent Lớp ContainerEvent Lớp ContainerEvent biểu thị nội dung container thay đổi thành phần thêm vào bị gỡ bỏ Cú pháp khai báo lớp java.awt.event.ContainerEvent là: public class ContainerEvent extends ComponentEvent Lớp MouseMotionEvent Lớp MouseMotionEvent hành động liên quan tới chuột (mouse action) xảy thành phần Sự kiện tầm thấp tạo đối tượng Component chuột bị kéo di chuyển Cú pháp khai báo cho lớp java.awt.event.MouseMotionEvent là: public class MouseMotionEvent extends InputEvent http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/java_swing/index.jsp Copyright © vietjack.com Lớp PaintEvent Lớp PaintEvent sử dụng để bảo đảm lời gọi phương thức paint/update xếp thứ tự theo kiện khác phân phối từ hàng kiện (event queue) Cú pháp khai báo cho lớp java.awt.event.PaintEvent là: public class PaintEvent extends ComponentEvent http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... String toString(): Trả biểu diễn chuỗi EventObject Lớp kế thừa phương thức từ lớp java. lang.Object Các lớp Event Java Swing Ngoài lớp EventObject trên, phần giới thiệu cho bạn số Event Class sử dụng... AWTEvent Lớp lớp thay lớp ban đầu java. awt.Event Lớp định nghĩa java. awt package Lớp AWTEvent có phương thức getID() sử dụng để xác định kiểu kiện Cú pháp khai báo lớp java. awt.AWTEvent là: public... pháp khai báo cho lớp java. awt.event.MouseEvent: public class MouseEvent extends InputEvent http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com /java_ swing/ index.jsp Copyright