intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 7: Xử lý sự kiện

Chia sẻ: Vo Minh Tu | Ngày: | Loại File: PDF | Số trang:35

127
lượt xem
27
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu 'chương 7: xử lý sự kiện', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả.Tìm hiểu các thông điệp được phát sinh từ bàn phím hay từ thiết bị chuột để viết các xử lý tương ứng với từng thiết bị.

Chủ đề:
Lưu

Nội dung Text: Chương 7: Xử lý sự kiện

  1. Chương 7: X lý s ki n GVLT: Tr n Anh Dũng 1
  2. Nh c l i GUI (1) Tách ñư c ñi u khi n c a chương trình v i d li u. Gói awt/swing c a Java bao g m m t t p các l p cho phép ngư i l p trình t o ra GUI c a ng d ng. Frame/JFrame và Panel/JPanel là các container thư ng ñư c dùng ñ t o ra ng d ng ch y ñ c l p (stand-alone application). Trình qu n lý Layout manager giúp b trí các component lên GUI. Trong gói awt có 5 lo i Layout khác nhau 2
  3. Nh c l i GUI (2) Thi t l p layout cho m t container. FlowLayout là b c c m c ñ nh c a Panel BorderLayout là b c c m c ñ nh c a Frame. GridLayout là cách b trí các component vào container d ng 1 lư i rows hàng cols c t. GridBagLayout m r ng c a GridLayout. ð dùng GridBagLayout GridBagConstraint. NullLayout là cách b trí t do. M t GUI có b c c ph c t p phân tích thành nhi u thành ph n, m i thành ph n là 1 panel có layout riêng. 3
  4. N i dung Gi i thi u l p trình hư ng s ki n Mô hình x lý s ki n Hành ñ ng, s ki n và l ng nghe. Các l p s ki n AWT, interface l ng nghe s ki n 4
  5. L p trình x lý s ki n (1) L p trình hư ng th t c (Procedural programming) L p trình hư ng s ki n (event-driven programming) Tùy vào các tương tác gi a ngư i dùng v i chương trình: Ch n m t ch c năng trong ng d ng M ho c ñóng m t c a s Nh n dòng văn b n Thay ñ i tiêu ñi m (focus) Thay ñ i tr ng thái … 5
  6. L p trình x lý s ki n (2) Khi có m t tương tác x y ra thì m t s ki n ñư c g i ñ n chương trình. Thông tin v s ki n thư ng ñư c lưu tr trong m t ñ i tư ng d n xu t t l p AWTEvent. Nh ng ki u s ki n trong gói java.awt.event có th dùng cho c nh ng component awt và swing. ð i v i thư vi n JFC thì có thêm nh ng ki u s ki n m i trong gói java.swing.event. 6
  7. Mô hình x lý s ki n (1) Có 3 y u t quan tr ng trong mô hình x lý s ki n: Ngu n phát sinh s ki n (event source) S ki n (event object) B l ng nghe s ki n (event listener) EventObject User action Generate Notify listener an event Trigger an event Source Object Listener Object Register a listener object Event Handler 7
  8. Mô hình x lý s ki n (2) Ngu n phát sinh s ki n c n ph i ñăng ký “b l ng nghe” ñ x lý khi ngư i dùng tác ñ ng class MyMenuItemListener implements ActionListener { … } 8
  9. Các l p s ki n java.awt.event 9
  10. Các l p s ki n (tt) L p s ki n Mô t ActionEvent Phát sinh khi m t button ñư c nh n, m t item trong danh sách ch n l a ñư c nh p ñôi hay m t menu ñư c ch n. AdjustmentEvent Phát sinh khi m t thanh scrollbar ñư c s d ng. ComponentEvent Phát sinh khi m t thành ph n ñư c thay ñ i kích thư c, ñư c di chuy n, b n hay làm cho ho t ñ ng ñư c. FocusEvent Phát sinh khi m t thành ph n m t hay nh n focus. KeyEvent Phát sinh khi input ñư c nh n t bàn phím. 10
  11. Các l p s ki n (tt) L p s ki n Mô t ItemEvent Phát sinh khi m t menu item ñư c ch n hay b ch n; khi m t checkbox hay m t item trong danh sách ñư c click. WindowEvent Phát sinh khi m t c a s ñư c kích ho t, ñư c ñóng, ñư c m hay thoát. TextEvent Phát sinh khi giá tr trong thành ph n text field hay text area b thay ñ i. MouseEvent Phát sinh khi chu t di chuy n, ñư c click, ñư c kéo hay b th ra. 11
  12. Các interface l ng nghe s ki n 12
  13. Hành ñ ng, s ki n, l ng nghe Hành ActionEvent ActionListener AdjustmentEvent AdjustmentListener ComponentEvent ComponentListener FocusEvent FocusListener ItemEvent ItemListener W indowEvent W indowListener TextEvent TextListener MouseEvent MouseListener MouseMotionListener KeyEvent KeyListener 13
  14. Hành ñ ng, s ki n, l ng nghe L p s ki n B l ng nghe Hàm x lý ActionEvent ActionListener actionPerformed(ActionEvent) ItemEvent ItemListener itemStateChanged(ItemEvent) WindowEvent WindowListener windowClosing(WindowEvent) windowOpened(WindowEvent) windowIconified(WindowEvent) windowDeiconified(WindowEvent) windowClosed(WindowEvent) windowActivated(WindowEvent) windowDeactivated(WindowEvent) ContainerEvent ContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent) …. … … 14
  15. Qui trình x lý s ki n Khai báo public MyClass implements ActionListener ðăng ký Component.addActionListener(myclass); Cài ñ t public void actionPerformed(ActionEvent e) { //…… } 15
  16. Ví d x lý s ki n Ví d 1: T o b l ng nghe bi n c cho ñ i tư ng khung ch a Frame, và x lý bi n c ñóng c a s . T o và ñăng ký m t b l ng nghe cho m t component trên GUI (Frame). Cài ñ t các phương th c qu n lý và x lý s ki n tương ng. 16
  17. WindowEventDemo.java import java.awt.*; import java.awt.event.*; public class WindowEventDemo{ public static void main(String args[ ]){ Frame f = new Frame ("WindowClosing Demo"); WindowCloser closer = new WindowCloser(); f.addWindowListener(closer); f.setBounds(10, 10, 300, 200); f.setVisible(true); } } 17
  18. WindowCloser.java import java.awt.event.*; class WindowCloser implements WindowListener{ public void windowClosing(WindowEvent e){ System.out.println("windowClosing.."); System.exit(0); } public void windowActivated(WindowEvent e){ System.out.println("windowActivated..."); } public void windowClosed(WindowEvent e){ System.out.println("windowClosed..."); } //… 18
  19. WindowCloser.java public void windowOpened(WindowEvent e){ System.out.println("windowOpened..."); } public void windowDeactivated(WindowEvent e){ System.out.println("windowDeactivated..."); } public void windowDeiconified(WindowEvent e){ System.out.println("windowDeiconified..."); } public void windowIconified(WindowEvent e){ System.out.println("windowIconified..."); } } 19
  20. Ví d X lý s ki n (2) Có th dùng l p tr u tư ng WindowAdapter ñ t o ra b l ng nghe. W indowAdapter hi n th c interface WindowListener nên l p o này cũng có 7 phương th c gi ng như giao di n WindowListener 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2