Các lớp Adapter trong Java AWT cung cấp bản cài đặt mặc định cho các interface Listener. Nếu bạn kế thừa lớp Adapter, bạn sẽ không bị buộc phải cung cấp cài đặt cho các phương thức của các interface Listener. Vì vậy, nó giúp tiết kiệm code.
Các lớp Adapter được tìm thấy trong các gói java.awt.event, java.awt.dnd và javax.swing.event. Các lớp Adapter với các interface Listener tương ứng của chúng được đưa ra dưới đây.
Các lớp java.awt.event Adapter
Lớp Adapter | Listener interface |
---|---|
WindowAdapter | WindowListener |
KeyAdapter | KeyListener |
MouseAdapter | MouseListener |
MouseMotionAdapter | MouseMotionListener |
FocusAdapter | FocusListener |
ComponentAdapter | ComponentListener |
ContainerAdapter | ContainerListener |
HierarchyBoundsAdapter | HierarchyBoundsListener |
Nội dung chính
Các lớp java.awt.dnd Adapter
Lớp Adapter | Listener interface |
---|---|
DragSourceAdapter | DragSourceListener |
DragTargetAdapter | DragTargetListener |
Các lớp javax.swing.event Adapter
Lớp Adapter | Listener interface |
---|---|
MouseInputAdapter | MouseInputListener |
InternalFrameAdapter | InternalFrameListener |
Ví dụ WindowAdapter trong Java AWT
package vn.kienthuclaptrinh.awt; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AdapterExample1 { Frame frame; AdapterExample1() { frame = new Frame("Ví dụ WindowAdapter trong Java AWT"); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { frame.dispose(); } }); frame.setSize(400, 250); frame.setLayout(null); frame.setVisible(true); } public static void main(String[] args) { new AdapterExample1(); } }
Kết quả:
Ví dụ MouseAdapter trong Java AWT
package vn.kienthuclaptrinh.awt; import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MouseAdapterExample extends MouseAdapter { private Frame frame; public MouseAdapterExample() { frame = new Frame("Ví dụ MouseAdapter trong Java AWT"); frame.addMouseListener(this); frame.setSize(400, 300); frame.setLayout(null); frame.setVisible(true); // close window frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1); } }); } public void mouseClicked(MouseEvent e) { Graphics g = frame.getGraphics(); g.setColor(Color.BLUE); g.fillOval(e.getX(), e.getY(), 20, 20); } /** * main * * @param args */ public static void main(String[] args) { new MouseAdapterExample(); } }
Kết quả:
Ví dụ MouseMotionAdapter trong Java AWT
package vn.kienthuclaptrinh.awt; import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class MouseMotionAdapterExample extends MouseMotionAdapter { private Frame frame; public MouseMotionAdapterExample() { frame = new Frame("Ví dụ MouseMotionAdapter trong Java AWT"); frame.addMouseMotionListener(this); frame.setSize(400, 400); frame.setLayout(null); frame.setVisible(true); // close window frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1); } }); } public void mouseDragged(MouseEvent e) { Graphics g = frame.getGraphics(); g.setColor(Color.RED); g.fillOval(e.getX(), e.getY(), 10, 10); } public static void main(String[] args) { new MouseMotionAdapterExample(); } }
Kết quả:
Ví dụ KeyAdapter trong Java AWT
package vn.kienthuclaptrinh.awt; import java.awt.Frame; import java.awt.Label; import java.awt.TextArea; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class KeyAdapterExample extends KeyAdapter { Label label; TextArea textArea; Frame frame; KeyAdapterExample() { frame = new Frame("Ví dụ KeyAdapter trong Java AWT"); label = new Label(); label.setBounds(20, 50, 200, 20); textArea = new TextArea(); textArea.setBounds(20, 80, 300, 300); textArea.addKeyListener(this); frame.add(label); frame.add(textArea); frame.setSize(400, 400); frame.setLayout(null); frame.setVisible(true); // close window frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(1); } }); } public void keyReleased(KeyEvent e) { String text = textArea.getText(); String words[] = text.split("\\s"); label.setText("Words: " + words.length + " Characters:" + text.length()); } public static void main(String[] args) { new KeyAdapterExample(); } }
Kết quả: