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

pdf 24 trang phuongnguyen 3010
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình đồ họa: Xử lý các sự kiện (Tiếp)", để 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_tiep.pdf

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

  1. Xửlý cácsựkiện Xửlý cácsựkiện  WindowEvent  Cài đặt giao tiếp WindowListener  Xem ví dụ về Frame 95
  2. XXửửllýý ccááccssựựkkiiệệnn  WindowAdapter  FocusAdapter  WindowEvent  KeyAdapter  Cài đặt giao tiếp WindowListener  MouseAdapter  Xem ví dụ về Frame  MouseMotionAdapter  Adapter class 96
  3. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent  Được phát sinh bởi Button, MenuItem, TextField, List  Lớp nghe cài đặt giao tiếp ActionListener hay cài đặt phương thức actionPerformed(ActionEvent)  Một số biến & phương thức của ActionEvent  int ALT_MASK: phím ALT có được nhấn ?  int CTRL_MASK: phím CTRL có được nhấn ?  int SHIFT_MASK: phím SHIFT có được nhấn ?  int getModifiers(): có thể trả về ALT_MASK, CTRL_MASK  String getActionCommand(): trả về command gắn với mỗi ActionEvent 97
  4. Xửlý cácsựkiện Xửlý cácsựkiện import java.awt.*; import java.awt.event.*;  ActionEvent class ActionListenerTest extends GUIFrame implements ActionListener { Panel controlPanel, whoDoneItPanel, commandPanel; MenuBar menuBar; Menu menu; MenuItem menuItem; Button button; List list; Label whoDoneItLabel, commandLabel; TextField whoDoneItTextField, commandTextField, textField; public ActionListenerTest(){ super("ActionListener Test"); //create menu bar menuBar = new MenuBar(); menu = new Menu("A Menu"); 98
  5. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent menuItem = new MenuItem("A Menu Item",new MenuShortcut(KeyEvent.VK_M)); menuItem.addActionListener(this); menu.add(menuItem); menuBar.add(menu); setMenuBar(menuBar); //create whoDoneItPanel whoDoneItPanel = new Panel(); whoDoneItPanel.setBackground(Color.pink); whoDoneItLabel = new Label("Who done it", Label.RIGHT); whoDoneItTextField = new TextField("A TextField"); //whoDoneItTextField.addActionListener(this); whoDoneItTextField.setEditable(false); whoDoneItPanel.add(whoDoneItLabel); whoDoneItPanel.add(whoDoneItTextField); add(whoDoneItPanel,BorderLayout.NORTH);
  6. XXửửllýý cc9 ááccssựựkkiiệệnn 9
  7. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent //create controlPanel controlPanel = new Panel(); controlPanel.add(new Label("A TextField", Label.RIGHT)); textField = new TextField(15); textField.addActionListener(this); controlPanel.add(textField); button = new Button("A Button"); button.addActionListener(this); button.setActionCommand("My Action Commmand"); controlPanel.add(button); controlPanel.add(new Label("A List",Label.RIGHT)); list = new List(5,false); list.add("Breakfast"); list.add("Lunch"); list.add("Diner");
  8. ck"); list.add("Dessert"); XXửửllýý ccááccssựựkkiiệệnn 100
  9. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent list.add("Brunch"); list.addActionListener(this); controlPanel.add(list); add(controlPanel, BorderLayout.CENTER); //create commandPanel commandPanel = new Panel(); commandLabel = new Label("Action Command"); commandPanel.setBackground(Color.pink); commandTextField = new TextField(15); commandTextField.setEditable(false); commandPanel.add(commandLabel); commandPanel.add(commandTextField); add(commandPanel,BorderLayout.SOUTH); pack(); setVisible(true); 101
  10. } XXửửllýý ccááccssựựkkiiệệnn 102
  11. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent public void actionPerformed(ActionEvent e){ if(e.getSource()==menuItem){ whoDoneItTextField.setText("A MenuItem"); }else if(e.getSource()==textField){ whoDoneItTextField.setText("A TextField"); }else if(e.getSource()==button){ whoDoneItTextField.setText("A Button"); }else if(e.getSource()==list){ whoDoneItTextField.setText("A List"); } commandTextField.setText(e.getActionCommand()); } public static void main(String[] args){ ActionListenerTest test = new ActionListenerTest(); } } 103
  12. XXửửllýý ccááccssựựkkiiệệnn  ActionEvent 104
  13. XXửửllýý ccááccssựựkkiiệệnn  ItemEvent  Được tạo ra từ các thành phần cho phép lựa chọn như Checkbox, Choice, List  Lớp nghe ItemEvent cần cài đặt giao tiếp ItemListener  Phương thức cần cài đặt: itemStateChanged(ItemEvent)  Phương thức của ItemEvent  int getStateChange(): có thể nhận ItemEvent.SELECTED hoặc ItemEvent.DESELECTED  Object getItem(): item đã thay đổi trạng thái (Checkbox, Choice hoặc item được chọn của List) 105
  14. XXửửllýý ccááccssựựkkiiệệnn  TextEvent  Được tạo ra bởi TextComponent (TextField, TextArea)  Lớp nghe cài đặt giao tiếp TextListener  Phương thức cần cài đặt textValueChanged(TextEvent)  TextEvent được sinh ra khi giá trị text của TextComponent thay đổi (thêm, xóa text) 106
  15. XXửửllýý ccááccssựựkkiiệệnn  Phương thức của MouseEvent  MouseEvent  int getClickCount()  Được tạo ra bởi chuột của người dùng  Point getPoint()  Lớp nghe cài đặt giao tiếp  int getX()  MouseListener  int getY()  MouseMotionListener 107
  16. XXửửllýý ccááccssựựkkiiệệnn  Các phương thức của MouseListener  MouseEvent void mouseClicked(MouseEvent) void mouseEnteredMouseEvent) void mouseExited(MouseEvent) void mousePressed(MouseEvent) void mouseReleased(MouseEvent)  Các phương thức của MouseMotionListener  void mouseMoved(MouseEvent)  void mouseDragged(MouseEvent) 108
  17. XXửửllýý ccááccssựựkkiiệệnn import java.awt.event.*; public class MouseTest extends  MouseEvent GUIFrame import java.awt.*; implements MouseListener, MouseMotionListener { Canvas canvas; Label location, event; public MouseTest(){ super("Mouse Event Test"); canvas = new Canvas(); canvas.setBackground(Color.white); canvas.setSize(450,450); canvas.addMouseListener(this); canvas.addMouseMotionListener(this); add(canvas, BorderLayout.CENTER); Panel infoPanel = new Panel(); infoPanel.setLayout(new GridLayout(0, 2, 10, 0)); location = new Label("Location: "); 108
  18. XXửửllýý ccááccssựựkkiiệệnn  MouseEvent infoPanel.add(location); event = new Label("Event: "); infoPanel.add(event); add(infoPanel, BorderLayout.SOUTH); pack(); setVisible(true); } public static void main(String[] args) { new MouseTest(); } public void mouseClicked(MouseEvent e){ String text = "Event: Clicked Button "; switch(e.getModifiers()){ case InputEvent.BUTTON1_MASK: text += 1;
  19. XXửửllýý ccááccssựựkkiiệệnn case InputEvent.BUTTON2_MASK: 109
  20. XXửửllýý ccááccssựựkkiiệệnn  MouseEvent text += 2; break; case InputEvent.BUTTON3_MASK: text += 3; break; } text += " (" + e.getClickCount() + "x)"; event.setText(text); } public void mouseEntered(MouseEvent e){ event.setText("Event: Entered"); } public void mouseExited(MouseEvent e){ event.setText("Event: Exited"); }
  21. XXửửllýý ccááccssựựkkiiệệnn 110
  22. XXửửllýý ccááccssựựkkiiệệnn  MouseEvent public void mousePressed(MouseEvent e){ event.setText("Event: Pressed"); } public void mouseReleased(MouseEvent e){ event.setText("Event: Released"); } public void mouseMoved(MouseEvent e){ location.setText("Location: (" + e.getX()+"," + e.getY()+")"); } public void mouseDragged(MouseEvent e){ Point p = e.getPoint(); event.setText("Event: Dragged"); location.setText("Location: (" + p.getX()+"," + p.getY()+")"); } } 111
  23. XXửửllýý ccááccssựựkkiiệệnn  MouseEvent 112
  24. XXửửllýý ccááccssựựkkiiệệnn  void keyTyped(KeyEvent)  KeyEvent  Một số phương thức  Được tạo ra khi người dùng gõ bàn phím của KeyEvent  Lớp nghe cài đặt giao tiếp KeyListener  char getKeyChar()  Các phương thức của KeyListener  int getKeyCode()  void keyPressed(KeyEvent)  String  void keyReleased(KeyEvent) getKeyText(int keyCode) 113