Bài giảng Lập trình đồ họa: Xử lý các sự kiện
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:
- bai_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
- 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
- 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
- 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
- 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
- XXửửllýý ccááccssựựkkiiệệnn Ví dụ về xử lý sự kiện 16
- 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
- XXửửllýý ccááccssựựkkiiệệnn Mô tả sự kiện 18
- 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
- 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
- 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
- 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);
- } XXửửllýý ccááccssựựkkiiệệnn 22
- 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
- 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