Bài giảng Lập trình đồ họa: Xử lý các sự kiện

pdf 14 trang phuongnguyen 3380
Bạn đang xem tài liệu "Bài giảng Lập trình đồ họa: Xử lý các sự kiện", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_lap_trinh_do_hoa_xu_ly_cac_su_kien.pdf

Nội dung text: Bài giảng Lập trình đồ họa: Xử lý các sự kiện

  1. XXửửllýý ccááccssựựkkiiệệnn  Sự kiện là gì  Khi người dùng thực hiện một hành động trên GUI, một sự kiện sẽ được sinh ra.  Các sự kiện là các đối tượng mô tả những gì đã xảy ra  Mỗi tác động của người dùng sẽ tạo ra những loại sự kiện khác nhau Kích chuột Button ActionEvent EventHandler actionPerformed(ActionEvent e){ //Do something } 12
  2. XXửửllýý ccááccssựựkkiiệệnn  Là nguồn sinh ra sự kiện.  Event Sources  Sự kiện được sinh ra dưới dạng một object, ví dụ ActionEvent.  Event Handlers  Event handler là một phương thức, nó nhận về một đối tượng event, giải mã và xử lý các tương tác với người dùng  Lớp chứa các phương thức (event handler) được gọi là lớp nghe sự kiện (listener)  Để một lớp nghe có thể xử lý một sự kiện nào đó, nguồn sinh ra sự kiện cần phải đăng ký lớp nghe  Một nguồn sinh ra sự kiện có thể có nhiều lớp nghe  Một lớp muốn là listener phải implement một giao tiếp thích hợp 13
  3. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về xử lý sự kiện import java.awt.*; import java.awt.event.*; class EventTest extends Frame implements ActionListener { Label lab = new Label("Enter a number"); TextField tf1 = new TextField(5); TextField tf2 = new TextField(5); Button btnResult = new Button("Double is"); Button ext = new Button("exit"); public EventTest(String title) { super(title); setLayout(new FlowLayout()); btnResult.addActionListener(this); ext.addActionListener(this); add(lab); add(tf1); add(btnResult); add(tf2); add(ext); } 14
  4. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về xử lý sự kiện public void actionPerformed(ActionEvent ae) { if (ae.getSource() == btnResult) { int num = Integer.parseInt(tf1.getText()) * 2; tf2.setText(String.valueOf(num)); } if (ae.getSource() == ext) { System.exit(0); } } public static void main(String args[]) { EventTest t = new EventTest("Event handling"); t.setSize(300, 200); t.setVisible(true); } } 15
  5. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về xử lý sự kiện 16
  6. XXửửllýý ccááccssựựkkiiệệnn  Các loại sự kiện (Event) java.util.EventObject java.awt.AWTEvent java.awt.event ActionEvent AdjustmentEvent FocusEvent KeyEvent ComponentEvent InputEvent MouseEvent ItemEvent ContainerEvent TextEvent WindowEvent 17
  7. XXửửllýý ccááccssựựkkiiệệnn  Mô tả sự kiện 18
  8. XXửửllýý ccááccssựựkkiiệệnn ActionListener  Các loại Listener AdjustmentListener E v ContainerListener e n FocusListener t L i ItemListener s t KeyListener e n MouseListener e r MouseMotionListener TextListener WindowListener 19
  9. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ với danh sách List  Đăng ký đối tượng nghe addActionListener(A  add + loại sự kiện + Listener( sự kiện) ctionListener)  Ví dụ với nút Button addActionListener(ActionListener) addItemListener(Ite mListener) 20
  10. XXửửllýý ccááccssựựkkiiệệnn  Cài đặt quản lý sự kiện  Xác định đối tượng sẽ gây ra sự kiện (source)  Xác định sự kiện có thể xẩy ra tương ứng với đối tượng mà ta cần quản lý (object)  Xác định đối tượng “nghe” (listener) và cài đặt các phương thức tương ứng  Đăng ký đối tượng nghe cho đối tượng gây ra sự kiện 21
  11. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về quản lý sự kiện import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class TestButton { private Frame f; private Button b; public TestButton(){ f = new Frame("Test"); b = new Button("Press me"); b.setActionCommand("ButtonPressed"); } public void init(){ b.addActionListener(new ButtonHandler()); f.add(b, BorderLayout.CENTER); f.pack(); f.setVisible(true);
  12. } XXửửllýý ccááccssựựkkiiệệnn 22
  13. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về quản lý sự kiện public static void main(String[] args){ TestButton test = new TestButton(); test.init(); } } class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e) { System.out.println("Button's command is: "+ e.getActionCommand()); } } 23
  14. XXửửllýý ccááccssựựkkiiệệnn  Ví dụ về quản lý sự kiện Button's command is: ButtonPressed Button's command is: ButtonPressed Button's command is: ButtonPressed 24