【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 }

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

时间: 2024-10-08 12:06:51

【Java】 用MouseAdapter模拟按钮的实现的相关文章

Java接口回调实现按钮监听

做Android开发的时候,经常碰到View的事件监听,虽然一直在用,但从未思考它的实现原理.还有回调函数虽然经常听说,但是总感觉很晕,一想脑袋就开始乱了.所以今天就写点东西来理一下思路. 回调函数 以下是维基百科上的定义: 在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 光看定义可能晦涩难懂,下面还是回到标题,用

JAVA学习Swing章节按钮组件JButton的简单学习

package com.swing; import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.Icon; import javax.swing.ImageIcon;

java中多线程模拟(多生产,多消费,Lock实现同步锁,替代synchronized同步代码块)

import java.util.concurrent.locks.*; class DuckMsg{ int size;//烤鸭的大小 String id;//烤鸭的厂家和标号 DuckMsg(){ } DuckMsg(int size, String id){ this.size=size; this.id=id; } public String toString(){ return id + " 大小为:" + size; } } class Duck{ private int

使用java语言编写窗口按钮

使用java语言编写窗口按钮 代码如下: package Day08; import java.awt.FlowLayout; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField; public class ShowFlowLayout extends JFrame { public ShowFlowLayout() { //Set

使用图片touch事件模拟按钮点击效果&amp;&amp;图片预加载

模拟按钮点击效果踩坑 1 先说移动端300ms延迟 关于300ms延迟这个网址:http://developer.telerik.com/featured/300-ms-click-delay-ios-8/有详细的说明于解决方案,在这里不再赘述,由于项目需求,我又测试了一下客户端touchstart touchend click三个事件的触发顺序测试代码如下: <body> <div class="btn"> <img src="./img/po

C++用PostMessage模拟按钮点击

有时我们可能会在某个程序中用到模拟按钮点击事件. 本文中的例子在MFC程序中调试通过,duilib的没试过,还需探索 不多说,上代码: 1 #include "stdafx.h" 2 #include "windows.h" 3 #include "Psapi.h" 4 #include "atlstr.h" 5 #include <string.h> 6 #include<iostream> 7 us

77.JAVA编程思想——模拟垃圾回收

77.JAVA编程思想--模拟垃圾回收 这个问题的本质是若将垃圾丢进单个垃圾筒,事实上是未经分类的.但在以后,某些特殊的信息必须恢复,以便对垃圾正确地归类.在最开始的解决方案中,RTTI 扮演了关键的角色.这并不是一种普通的设计,因为它增加了一个新的限制.正是这个限制使问题变得非常有趣--它更象我们在工作中碰到的那些非常麻烦的问题.这个额外的限制是:垃圾抵达垃圾回收站时,它们全都是混合在一起的.程序必须为那些垃圾的分类定出一个模型.这正是RTTI 发挥作用的地方:我们有大量不知名的垃圾,程序将正

java proxy InvocationHandler 模拟 spring aop

在学习spring的aop的时候,老师叫我们使用java的proxy和InvocationHandler来模拟spring的aop. 首先要了解什么是代理:所谓代理就是我想让小王去买包烟,但是我又不想直接通知小王,因为那样我感觉自己非常的掉价.所以我就叫小李去通知小王,让小王完成这件事.在这个过程中,我是一个主动方,小王是一个行为执行方,而小李就是一个代理.因为小李负责我和小王之间的关系,甚至小李也可以叫小王给自己再买一包烟(实际这就是动态代理的最大用处). 动态代理模式有代理对象,被代理对象.

用java http post模拟soapUI调用webservice

工作中需要用java调用peoplesoft提供的webservice接口,但peoplesoft的实施方没有提供java调用的案例代码,soapUI可以调用,但java代码一直写不出来,自行学习并调通了用java http post模拟的方法,感谢天涯的zhouyun0243和谷歌! import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException;