An EventListener อินเทอร์เฟซกำหนดวิธีการที่ต้องใช้โดยตัวจัดการเหตุการณ์สำหรับเหตุการณ์บางประเภทในขณะที่ เหตุการณ์ อะแดปเตอร์ คลาสจัดเตรียมการใช้งานเริ่มต้นของ EventListener อินเทอร์เฟซ
ตัวฟังเหตุการณ์
- The เหตุการณ์ ผู้ฟัง เป็นแกนหลักของทุกองค์ประกอบในการจัดการเหตุการณ์
- ทุกวิธีของ EventListener จะมีพารามิเตอร์ตัวเดียวเป็นอินสแตนซ์ซึ่งเป็นคลาสย่อยของ EventObject คลาส.
- An EventListener จำเป็นต้องขยายอินเทอร์เฟซและจะกำหนดเป็น j ava.util แพ็คเกจ
- บางส่วน EventListener อินเทอร์เฟซคือ ActionListener , KeyListener , MouseListener , FocusListener , ItemListener และอื่นๆ
ตัวอย่าง
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyListenerTest implements KeyListener, ActionListener { JFrame frame; JTextField tf; JLabel lbl; JButton btn; public KeyListenerTest() { frame = new JFrame(); lbl = new JLabel(); tf = new JTextField(15); tf.addKeyListener(this); btn = new JButton("Clear"); btn.addActionListener(this); JPanel panel = new JPanel(); panel.add(tf); panel.add(btn); frame.setLayout(new BorderLayout()); frame.add(lbl, BorderLayout.NORTH); frame.add(panel, BorderLayout.SOUTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setSize(300, 200); frame.setVisible(true); } @Override public void keyTyped(KeyEvent ke) { lbl.setText("You have typed "+ ke.getKeyChar()); } @Override public void keyPressed(KeyEvent ke) { lbl.setText("You have pressed "+ ke.getKeyChar()); } @Override public void keyReleased(KeyEvent ke) { lbl.setText("You have released "+ ke.getKeyChar()); } @Override public void actionPerformed(ActionEvent ae) { tf.setText(""); } public static void main(String args[]) { new KeyListenerTest(); } }
ผลลัพธ์
ตัวปรับต่อเหตุการณ์
- คลาสนามธรรมสามารถเรียกได้ว่าเป็น เหตุการณ์ อะแดปเตอร์ เพื่อรับงานต่างๆ
- An เหตุการณ์ อะแดปเตอร์ class ให้การใช้งานเริ่มต้นของวิธีการทั้งหมดใน EventListener อินเทอร์เฟซ
- คลาส Event Adapter ไม่กี่คลาสคือ FocusAdapter , KeyAdapter , MouseAdapter , ตัวปรับต่อหน้าต่าง และอื่นๆ
ตัวอย่าง
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class KeyAdapterTest { private JFrame frame; private JLabel headLabel; private JLabel msgLabel; private JPanel controlPanel; public KeyAdapterTest() { initializeUI(); } private void initializeUI() { frame = new JFrame("KeyAdapter class"); frame.setSize(350, 275); frame.setLayout(new GridLayout(3, 1)); headLabel = new JLabel("", JLabel.CENTER); msgLabel = new JLabel("", JLabel.CENTER); msgLabel.setSize(300, 100); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent) { System.exit(0); } }); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); frame.add(headLabel); frame.add(controlPanel); frame.add(msgLabel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setVisible(true); } private void showMouseApapter() { headLabel.setText("KeyAdapter Test"); final JTextField textField = new JTextField(10); JButton displayButton = new JButton("Display"); displayButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { msgLabel.setText("You entered : " + textField.getText()); } }); textField.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { msgLabel.setText("You entered : " + textField.getText()); } } }); controlPanel.add(textField); controlPanel.add(displayButton); frame.setVisible(true); } public static void main(String[] args) { KeyAdapterTest test = new KeyAdapterTest(); test.showMouseApapter(); } }
ผลลัพธ์