900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java获取页面点击次数_java计算鼠标点击次数的题 急求!

java获取页面点击次数_java计算鼠标点击次数的题 急求!

时间:2024-07-27 19:43:08

相关推荐

java获取页面点击次数_java计算鼠标点击次数的题 急求!

展开全部

我没有用到题目里给的计算时间差来计算,想不明白有啥用。

另外我就没布局了,随便做了个界面美化32313133353236313431303231363533e58685e5aeb931333433636234你自己想办法吧。

代码为:

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() {

@Override

public 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() {

@Override

public 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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。