1. 程式人生 > >Java實現Windows、Mouse監聽器

Java實現Windows、Mouse監聽器

1、通過實現WindowListener介面來實現Windows監聽器:

 1 import java.awt.event.WindowEvent;
 2 import java.awt.event.WindowListener;
 3 
 4 import javax.swing.JFrame;
 5 
 6 public class WindowsListenerFrame extends JFrame implements WindowListener  {
 7     
 8     public WindowsListenerFrame() {
 9         this
.setTitle("窗體事件"); 10 setSize(600, 400); 11 setResizable(false); 12 setLocationRelativeTo(null); 13 14 this.addWindowListener(this); 15 } 16 17 public static void main(String[] args) { 18 JFrame frame = new WindowsListenerFrame(); 19 frame.setVisible(true
); 20 } 21 22 @Override 23 public void windowActivated(WindowEvent event) { 24 } 25 26 @Override 27 public void windowClosed(WindowEvent arg0) { 28 } 29 30 @Override 31 public void windowClosing(WindowEvent arg0) { 32 this.dispose(); 33 } 34 35 @Override
36 public void windowDeactivated(WindowEvent arg0) { 37 } 38 39 @Override 40 public void windowDeiconified(WindowEvent arg0) { 41 } 42 43 @Override 44 public void windowIconified(WindowEvent arg0) { 45 } 46 47 @Override 48 public void windowOpened(WindowEvent arg0) { 49 } 50 }

2、通過實現WindowAdapter介面來實現Windows監聽器:

 1 import java.awt.event.WindowAdapter;
 2 import java.awt.event.WindowEvent;
 3 import java.awt.event.WindowListener;
 4 import javax.swing.JFrame;
 5 
 6 public class WindowAdapterFrame extends JFrame{
 7     public WindowAdapterFrame() {
 8         setTitle("窗體介面卡");
 9         setSize(600, 400);
10         setResizable(false);
11         
12         WindowListener listener =new WindowAdapter() {
13             @Override
14             public void windowClosing(WindowEvent e) {
15                 dispose();
16             }
17         };
18         this.addWindowListener(listener);
19     }
20     public static void main(String[] args) {
21         JFrame frame=new WindowAdapterFrame();
22         frame.setVisible(true);
23     }
24 }

3、通過實現MouseListener、MouseMotionListener介面來實現Mouse監聽器:

 1 import java.awt.BorderLayout;
 2 import java.awt.Container;
 3 import java.awt.event.MouseEvent;
 4 import java.awt.event.MouseListener;
 5 import java.awt.event.MouseMotionListener;
 6 
 7 import javax.swing.JFrame;
 8 import javax.swing.JLabel;
 9 
10 public class MouseListenerFrame extends JFrame implements MouseListener, MouseMotionListener{
11     JLabel lblStatus=null;
12     public MouseListenerFrame() {
13         setTitle("MouseListener");
14         setSize(600, 400);
15         setDefaultCloseOperation(EXIT_ON_CLOSE);
16         setResizable(false);
17         
18         Container container =this.getContentPane();
19         lblStatus=new JLabel();
20         container.add(BorderLayout.SOUTH, lblStatus);
21         
22         container.addMouseListener(this);
23         container.addMouseMotionListener(this);
24     }
25     /**
26      *  值得注意的是String.format()方法的呼叫格式,是用","來隔開各個引數
27      */
28     @Override
29     public void mouseClicked(MouseEvent event) {
30         String msg=String.format("滑鼠點選[%d, %d]",event.getX(),event.getY());
31         lblStatus.setText(msg);
32     }
33     @Override
34     public void mousePressed(MouseEvent e) {
35         String button=null;
36         if(MouseEvent.BUTTON1==e.getButton()) {
37             button="左鍵";
38         }else if(MouseEvent.BUTTON2==e.getButton()) {
39             button="滾輪";
40         }else if(MouseEvent.BUTTON3==e.getButton()) {
41             button="右鍵";
42         }
43         String msg=String.format("滑鼠 %s 按下[%d,%d]",button,e.getX(),e.getY());
44         lblStatus.setText(msg);        
45     }
46     @Override
47     public void mouseReleased(MouseEvent e) {
48         String msg=String.format("滑鼠釋放[%d,%d]",e.getX(),e.getY());
49         lblStatus.setText(msg);
50     }
51     @Override
52     public void mouseEntered(MouseEvent e) {
53         String msg=String.format("滑鼠進入[%d,%d]",e.getX(),e.getY());
54         lblStatus.setText(msg);
55     }
56     @Override
57     public void mouseExited(MouseEvent e) {
58         String msg=String.format("滑鼠退出[%d,%d]",e.getX(),e.getY());
59         lblStatus.setText(msg);
60     }
61     @Override
62     public void mouseDragged(MouseEvent e) {
63         String msg=String.format("滑鼠拖動,當前座標 [%d,%d]",e.getX(),e.getY());
64         lblStatus.setText(msg);
65     }
66     @Override
67     public void mouseMoved(MouseEvent e) {
68         String msg=String.format("滑鼠移動,當前座標 [%d,%d]",e.getX(),e.getY());
69         lblStatus.setText(msg);
70     }
71     public static void main(String[] args) {
72         JFrame frame=new MouseListenerFrame();
73         frame.setVisible(true);
74     }
75 }

 4、通過實現KeyListener介面來實現Key監聽器:

 1 import java.awt.BorderLayout;
 2 import java.awt.Container;
 3 import java.awt.event.KeyEvent;
 4 import java.awt.event.KeyListener;
 5 
 6 import javax.swing.JFrame;
 7 import javax.swing.JLabel;
 8 import javax.swing.JTextArea;
 9 
10 public class KeyListenerFrame extends JFrame implements KeyListener {
11     // 1. 屬性
12     JLabel lblStatus = null;    
13 
14     // 2. 方法
15     public KeyListenerFrame() {
16         this.setTitle("滑鼠事件");
17         setSize(600, 400);
18         setResizable(false);
19         setLocationRelativeTo(null);
20         setDefaultCloseOperation(EXIT_ON_CLOSE);
21 
22         Container contentPane = this.getContentPane();
23 
24         lblStatus = new JLabel();
25         contentPane.add(BorderLayout.SOUTH, lblStatus);
26         
27         JTextArea txaEdit = new JTextArea();
28         contentPane.add(BorderLayout.CENTER, txaEdit);
29 
30         txaEdit.addKeyListener(this);
31     }
32 
33     public static void main(String[] args) {
34         JFrame frame = new KeyListenerFrame();
35         frame.setVisible(true);
36     }
37 
38     @Override
39     public void keyPressed(KeyEvent event) {
40         lblStatus.setText("鍵盤按下: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
41     }
42 
43     @Override
44     public void keyReleased(KeyEvent event) {
45         lblStatus.setText("鍵盤放開: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
46     }
47 
48     @Override
49     public void keyTyped(KeyEvent event) {
50         lblStatus.setText("鍵盤敲擊: " + event.getKeyChar() + "(" + event.getKeyCode() + ")");
51     }
52 }