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();
}
} ผลลัพธ์
