【Java】 用MouseAdapter模拟按钮的实现

 1 import java.awt.Frame.*;
 2 import java.awt.event.*;
 3 import java.awt.*;
 4 
 5 public class Test extends Frame {
 6     
 7     boolean mouseClicked = false;
 8     
 9     public void launchFrame() {
10         this.setLocation(100,100);
11         this.setBackground(Color.GRAY);
12         this.setSize(500, 300);
13         this.addMouseListener(new mouseMonitor());
14         this.setVisible(true);
15     }
16     
17     public void paint(Graphics g) {
18         Color c = g.getColor();
19         if(mouseClicked == false) {
20             g.setColor(Color.WHITE);
21             g.drawLine(100, 100, 400, 100);
22             g.drawLine(100, 100, 100, 200);
23             g.setColor(Color.BLACK);
24             g.drawLine(100, 200, 400, 200);
25             g.drawLine(400, 100, 400, 200);
26         }
27         else if(mouseClicked == true) {
28             g.setColor(Color.BLACK);
29             g.drawLine(100, 100, 400, 100);
30             g.drawLine(100, 100, 100, 200);
31             g.setColor(Color.WHITE);
32             g.drawLine(100, 200, 400, 200);
33             g.drawLine(400, 100, 400, 200);
34         }
35         g.setColor(c);
36     }
37     
38     public class mouseMonitor extends MouseAdapter {
39         public void mousePressed(MouseEvent e) {
40             if(e.getX()<400 && e.getX()>100 && e.getY()<200 && e.getY()>100) { //getX()和getY()是MouseEvent的方法
41                 mouseClicked = true;
42                 repaint();    // 这里一定记得repaint()
43             }
44         }
45         public void mouseReleased(MouseEvent e) {
46             mouseClicked = false;
47             repaint();
48         }
49     
50     }
51     
52     public static void main(String[] args) {
53         Test t = new Test();
54         t.launchFrame();
55     }
56 }

 

转载于:https://www.cnblogs.com/SpongeHAO/p/3786006.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值