| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1818 人关注过本帖
标题:java 计算相邻两次单击鼠标的时间差
只看楼主 加入收藏
卖男孩的火柴
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-8-8
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:5 
java 计算相邻两次单击鼠标的时间差
不断单击button1,在babel1显示单击次数(这部分已实现),在babel2显示相邻两次单击鼠标的时间差。比如,第一次单击和第二次单击的时间差,第二次单击和第三次单击的时间差……
=============================================================
private class Button1Handler implements ActionListener
    {
     public void actionPerformed(ActionEvent e)
     {           
         numClicks++;   //numClicks为单击次数
         label1.setText(labelPrefix +numClicks);// 显示单击区被点击的次数。labelPrefix为Srting类型

         Date t =new Date();   
         long T1 = t.getTime();

        //添加什么代码来实现?

         t = new Date();
         long T2 = t.getTime();
               
         long T = (T2 - T1); //相邻两次单击的时间差,以毫秒显示     
         label2.setText("time"+T);
         T1 = T2;
     }
    }
===========================================================
如果就这样的程序代码的话,时间差显示为0(T1与T2获取的是同一个时间?) 重点是如何使T1和T2获取相邻单击的两个不同的时间!

[ 本帖最后由 卖男孩的火柴 于 2009-8-8 23:07 编辑 ]
搜索更多相关主题的帖子: JAVA 
2009-08-08 23:06
timeslot
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2009-8-8
收藏
得分:0 
System.currentTimeMillis() 返回以毫秒为单位的当前时间。
2009-08-08 23:53
hwpayg
Rank: 2
等 级:论坛游民
帖 子:108
专家分:25
注 册:2008-4-3
收藏
得分:0 
下面是我写的代码,你可以参考下
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.*;
import java.util.ArrayList;
 
import javax.swing.*;
import javax.swing.event.*;
 
public class Test
{
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                JFrame frame = new TimeFrame();
                frame.setVisible(true);
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            }
        });
    }
}
 
class TimeFrame extends JFrame
{
    int numClicks = 0;
    ArrayList<Long> al = new ArrayList<Long>();
 
    public TimeFrame()
    {
        JButton button = new JButton("计算时间");
        final JLabel label = new JLabel();
        this.add(button, BorderLayout.CENTER);
        this.add(label, BorderLayout.SOUTH);
        this.setSize(300, 300);
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                numClicks++; // numClicks为单击次数
                label.setText("" + numClicks);// 显示单击区被点击的次数。labelPrefix为Srting类型
 
                long t1 = System.currentTimeMillis();
                al.add(t1);
                System.out.println(al.get(numClicks-1));
                if (numClicks > 1)
                {
                    label.setText(al.get(numClicks-1) - al.get(numClicks - 2)
                            + "");
                }
            }
        });
    }
}
2009-08-09 08:43
jackhome
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2009-7-6
收藏
得分:0 
用System.currentTimeMillis();可以,我测试效率都是这么干的。
2009-08-10 17:03
usbboy2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:183
注 册:2009-7-31
收藏
得分:0 
建议用timeNano精确
2009-08-10 19:33
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
可以定义个静态局部变量存储Button1Handler的上一个时间,当点击数为1时初始化,之后就先new个时间做差值输出,再更新这个静态变量。

倚天照海花无数,流水高山心自知。
2009-08-11 10:36
快速回复:java 计算相邻两次单击鼠标的时间差
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018286 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved