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 }

猜你喜欢

转载自www.cnblogs.com/LJHAHA/p/10210886.html
今日推荐