EventListener 인터페이스는 특정 종류의 이벤트에 대해 이벤트 핸들러가 구현해야 하는 메소드를 정의하는 반면 이벤트 어댑터 클래스는 EventListener 의 기본 구현을 제공합니다. 인터페이스.
이벤트 리스너
- 이벤트 청취자 이벤트를 처리하는 모든 구성 요소의 중추입니다.
- 특정 EventListener 의 모든 메소드 EventObject 의 하위 클래스인 인스턴스로 단일 매개변수를 가집니다. 수업.
- EventListener 인터페이스를 확장해야 하며 j에 정의됩니다. ava.util 패키지.
- 몇 가지 EventListener 인터페이스는 ActionListener입니다. , KeyListener , 마우스 리스너 , 포커스 리스너 , 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(); } }
출력
이벤트 어댑터
- 추상 클래스는 이벤트 로 호출할 수 있습니다. 어댑터 다양한 이벤트를 받아보실 수 있습니다.
- 이벤트 어댑터 클래스는 EventListener 에 있는 모든 메서드의 기본 구현을 제공합니다. 인터페이스.
- FocusAdapter 이벤트 어댑터 클래스는 거의 없습니다. , 키 어댑터 , 마우스 어댑터 , 창 어댑터 등
예
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(); } }
출력