java计算鼠标点击次数的题,急求!

import javax.swing.*;import java.awt.*;import java.util.Timer;import java.util.TimerTask;import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;public class T {private static int click = 0;//点击多少次private static int time = 60;//剩余多少秒public static void main(String[] ...
java计算鼠标点击次数的题,急求!
我没有用到题目里给的计算时间差来计算,想不明白有啥用。
另外我就没布局了,随便做了个界面美化你自己想办法吧。
代码为:
import javax.swing.*;import java.awt.*;import java.util.Timer;import java.util.TimerTask;import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;public class T {private static int click = 0;//点击多少次private static int time = 60;//剩余多少秒public static void main(String[] args) {JFrame jFrame = new JFrame();//设置默认布局jFrame.setLayout(new FlowLayout());//设置窗口的属性 窗口位置以及窗口的大小jFrame.setBounds(200, 200, 300, 200);//设置窗口可见jFrame.setVisible(true);//设置关闭方式 如果不设置的话 似乎关闭窗口之后不会退出程序jFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);//得到窗口的容器Container conn = jFrame.getContentPane();JLabel jLabel1 = new JLabel("点击次数:" + click + "");JLabel jLabel2 = new JLabel("剩余时间:" + time + "秒");JButton jButton = new JButton("点我点我");jButton.setBounds(50, 50, 100, 20);jButton.setBackground(Color.CYAN);Timer timer = new Timer();//利用计时器计时jButton.addActionListener(e -> {//为按钮添加事件if (time > 0) {//剩余时间大于0才触发事件jLabel1.setText("点击次数:" + ++click);timer.schedule(new TimerTask() {@Overridepublic void run() {try {Thread.sleep(1000);jLabel2.setText("剩余时间:" + --time + "秒");if (time == 0) {timer.cancel();//停止计时}} catch (InterruptedException e1) {e1.printStackTrace();}}}, 0);}});conn.add(jLabel1);conn.add(jButton);conn.add(jLabel2);}}

运行结果:
没开始点的时候:

开始点:

到时间后还是能点,但是点击次数就不会增加了,计时器也停止了。
修改部分代码:
Timer timer = new Timer();//利用计时器计时final boolean[] onClock = {false};//因为相当于监听事件用了匿名类,这里必须这么写jButton.addActionListener(e -> {//为按钮添加事件if (!onClock[0]) {//第一次点击时才触发timer.schedule(new TimerTask() {@Overridepublic void run() {jLabel2.setText("剩余时间:" + --time + "秒");if (time == 0) {timer.cancel();//停止计时}}}, 1000, 1000);//延迟1秒,并每隔1秒执行一次onClock[0] = true;}if (time > 0) {//剩余时间大于0才触发事件jLabel1.setText("点击次数:" + ++click);}});

这样才正确,确保只启用一个计时器Timer,也只有1个计时器任务TimerTask
2020-06-28
mengvlog 阅读 8 次 更新于 2025-07-19 22:08:46 我来答关注问题0
  • import javax.swing.*;import java.awt.*;import java.util.Timer;import java.util.TimerTask;import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;public class T {private static int click = 0;//点击多少次private static int time = 60;//剩余多少秒public static void main(String[] ...

  • 可以用一个 static 类型的变量 如 NUM,来记录次数,并将这个次数放入JLabel中用于显示。点击地鼠的时候这个变量可以累加。这样就可以了

  •  胡老师谈科技 2018年3月计算机二级考试JAVA入门知识点:鼠标事件

    (1) getX():鼠标的X坐标 (2) getY():鼠标的Y坐标 (3) getModifiers():获取鼠标的左键或右键。(4) getClickCount():鼠标被点击的次数。(5) getSource():获取发生鼠标的事件源。(6) addMouseListener(监视器):加放监视器。(7) removeMouseListener(监视器):移去监视器。要实现的MouseList...

  • getX() getY() 获取鼠标位置 getModifiers() 获取鼠标左键或者右键 getClickCount() 获取鼠标被点击的次数 getSource() 获取鼠标发生的事件源 事件源获得监视器的方法是addMouseListener() 移去监视器的方法是removeMouseListener()处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法 mouseP...

  • anonymous java如何计算鼠标点击次数。新手求问

    n 要定义成类变量,不能是方法内的变量 。。。然后n就可以累加了。别忘了int的最大值,虽然一般情况到达不了

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部