JAVA如何监测按住按钮的事件
我是java的初学者,刚学swing里单击button的事件,还没学其他事件。假如我想做一个计时器,按住一个按钮计时,然后放开这个按钮停止计时,记录按住按钮的时间,请问这...
我是java的初学者,刚学swing里单击button的事件,还没学其他事件。假如我想做一个计时器,按住一个按钮计时,然后放开这个按钮停止计时,记录按住按钮的时间,请问这怎么实现。谢谢
展开
2个回答
展开全部
代码如下:
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.time.Duration;
import java.time.Instant;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyFrame extends JFrame
{
private static final long serialVersionUID = 1L;
public Instant start;
public Instant end;
public MyFrame()
{
setSize(300, 200);
setTitle("Test");
setLocationRelativeTo(null);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton btn = new JButton("BUTTON");
btn.setBounds(100, 60, 100, 40);
btn.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
start = Instant.now();
}
@Override
public void mouseReleased(MouseEvent e)
{
end = Instant.now();
System.out.println("总用时:" + Duration.between(start, end).toMillis() + "毫秒");
}
});
add(btn);
}
public static void main(String[] args)
{
EventQueue.invokeLater(() ->
{
try
{
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
});
}
}
按下按钮,再松开鼠标之后,总用时将被打印在控制台上,单位是毫秒,你可以设置其他单位
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询