II MÔ HÌNH XỬ LÝ SỰ KIỆN Đề tài Tìm hiểu về lập trình bắt sự kiện (Event Driven Programming)trong Java GV hướng dẫn Ngô Công Thắng Nhóm SV thực hiện 1 Nguyễn Thị Thanh Bình 2 Phạm Thị Kim Dung 3 Nguyễ. Là một loai tín hiệu báo cho chương trình có điều gì đó đã xảy ra. Ví dụ: mouseClicked, keyPressed Được sinh ra bởi các hành động của người sử dụng Ví dụ: di chuột,kích phím chuột,ấn phím Khi sự kiện xảy ra, dữ liệu liên quan đến sự kiện đó được thu thập và chuyển nó tới một đơn vị xử lý sự kiện (event handler) để xử lý. Sự kiện có thể bị bỏ qua hay chuyển tới nhiều hàm xử lý sự kiện một lúc nếu những hàm xử lý này cùng đồng thời lắng nghe sự kiện đó.
Trang 1Đề tài: Tìm hiểu về lập trình bắt sự kiện
(Event-Driven Programming)trong Java.
GV hướng dẫn: Ngô Công Thắng
Nhóm SV thực hiện :
1 Nguyễn Thị Thanh Bình
2 Phạm Thị Kim Dung
3 Nguyễn Thị Hoài
Trang 4• Khi sự kiện xảy ra, dữ liệu liên quan đến sự kiện đó được
thu thập và chuyển nó tới một đơn vị xử lý sự kiện (event
handler) để xử lý
• Sự kiện có thể bị bỏ qua hay chuyển tới nhiều hàm xử lý
sự kiện một lúc nếu những hàm xử lý này cùng đồng thời lắng nghe sự kiện đó.
Trang 52 Đơn vị xử lý sự kiện (event
handler hay event listener )
từ một thiết bị như chuột hay bàn phím và thực hiện một việc nào đó để phản ứng lại với một sự kiện xảy ra trên thiết bị đó
gọi khi sự kiện tương ứng phát sinh
Trang 6}
Trang 73 Lập trình bắt sự kiện
GUI, hoặc thông qua cú nhấp chuột hoặc thông qua các sự kiện
chương trình
=>Lập trình bắt sự kiện có nghĩa là làm cho một số hành động thực hiện thông qua hàm thông báo về sự xuất hiện của các sự kiện
Trang 91 Giới thiệu mô hình ủy thác
Trong mô hình này, đích phải đăng ký với nguồn để nhận các
thông báo về sự kiện, điều này cung cấp nhiều lợi điểm: các thông báo chỉ gửi đến các đích nghe cần nhận nó
• Ưu điểm mô hình:
• Phần chương trình xử lý sự kiện hoàn toàn tách biệt với giao diện người dùng nơi đã phát sinh ra các sự kiện.
• Giao diện người dùng có thể ủy thác việc xử lý sự kiện cho các
phần mã lệnh riêng rẽ
Trang 10Mô hình ủy thác sự kiện
Trang 11Mô hình minh họa ủy thác sự kiện
Ta là một đối tượng
Ta bị bệnh ( sự kiện )
Bệnh có trạng thái ( đối tượng sự kiện )
Một bác sĩ là một đối tượng khác
Ta nhờ bác sĩ chữa bệnh ( ủy thác xử lý sự kiện )
Bác sĩ chờ ( listen ) ta đưa ra triệu chứng bệnh ( đối tượng
event ) rồi dựa vào trạng thái của bệnh ( đối tượng event ) để xử
lý phù hợp
Có thể ta mắc nhiều bệnh-> có thể ủy thác chữa bệnh cho
nhiều bác sĩ, mỗi bác sĩ một loại bệnh
Một bác sĩ chữa bệnh như thế nào tùy thuộc vào quyết định của bác sĩ đó dựa trên tình hình thực tế của dược phẩm
Trang 12Tạo Event Object khi
Nội dung event handler tùy thuộc vào mục tiêu
của ứng dụng
Event Listener
1 (Bác sĩ 1)
Event Object 1 (bệnh 1)
Event Object 2 (bệnh 2)
Trang 133 yếu tố quan trọng trong mô hình xử
lý sự kiện
Trang 142 Cơ chế xử lý sự kiện
biến cố
các Listener của event source
EventObject để xác định đoạn code phù
hợp và phản ứng của ứng dụng đối với sự kiện được tiến hành
Trang 153 Lớp sự kiện
Trang 16Những lớp sự kiện chính trong Java.awt.event
Trang 17Những interfaces lắng nghe của gói java.awt.event
Trang 18Ví dụ: Khi nhấn nút button (đối tượng nguồn) sẽ sinh ra sự kiện ActionEvent, sự kiện này được gửi cho đối tượng lắng nghe sự kiện(đối tượng đích) Đối tượng nguồn dùng phương thức addActionEvent để đăng ký đối tượng đích,
đối tượng đích dùng giao diện ActionEvent cung cấp phương thức actionPerforment (actionevent e) để xử
lý sự kiện ActionEvent
Trang 19III Xử lý sự kiện
Sự kiện chuột
Sự kiện bàn phím
Trang 201 Xử lý sự kiện về chuột
chuyển, nhấn, thả, nhắp và khi chuột đi vào hay ra một thành phần
MouseListener và MouseMotionListener
kỳ component nào trên GUI mà dẫn xuất từ java.awt.component
Trang 21Các phương thức của interface
MouseListener
Trang 22Các phương thức của lớp MouseEvent
Trang 23Các phương thức của interface
MouseMotionListener
Trang 24Ví dụ:
Chương trình tên MouseTracker bên dưới
minh họa việc dùng những phương thức của các interfaces MouseListener và
MouseMotionListener để “bẫy” và xử lý các
sự kiện chuột tương ứng
Trang 252 Xử lý sự kiện về bàn phím
gõ vào một phím bất kì trên bàn phím (nhấn hoặc nhả phím) Kết quả trả về là một số nguyên là mã ASCII của kí tự hoặc hoặc kí tự được ghi trên
phím được nhấn hay nhả đó.
được thiết lập “Focusable “ bằng true(keyboard
focus) khi người dùng nhấn hoặc nhả một phím bất
kì trên bàn phím.
nghe “interface KeyListener”
Trang 26Interface KeyListener
Trang 27KeyEvent là lớp được kế thừa từ lớp
InputEvent
Trang 28Tài liệu tham khảo
Trường ĐH Nông Nghiệp HN.
Nguyễn Tiến, NXB Thống kê 2000.
swing/events/