Bài giảng Lập trình đồ họa: Xử lý các sự kiện (Tiếp)
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:
- bai_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)
- 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
- 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
- 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
- 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
- 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);
- XXửửllýý cc9 ááccssựựkkiiệệnn 9
- 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");
- ck"); list.add("Dessert"); XXửửllýý ccááccssựựkkiiệệnn 100
- 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
- } XXửửllýý ccááccssựựkkiiệệnn 102
- 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
- XXửửllýý ccááccssựựkkiiệệnn ActionEvent 104
- 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
- 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
- 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
- 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
- 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
- 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;
- XXửửllýý ccááccssựựkkiiệệnn case InputEvent.BUTTON2_MASK: 109
- 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"); }
- XXửửllýý ccááccssựựkkiiệệnn 110
- 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
- XXửửllýý ccááccssựựkkiiệệnn MouseEvent 112
- 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