[英]Displaying a timer in a panel using JLabel
因此,我正在与同班同学一起编写程序,我们在GUI方面没有太多经验,但是我想做的是在侧面板上显示用户完成拼图所需的时间的计时器(这是一个主要游戏区域以及旁边带有按钮等的侧面板),但我不确定如何使JLabel
随用户解决难题所需的时间不断更新。 我不知道如何使用计时器对象来执行此操作,因此我现在尝试仅使用System.nanoTime()
。
1)如果我使用计时器对象,该在Action侦听器参数中使用什么? 这将调用timerLabel.updateUI();
每次(假设我已经有actionPerformed方法,其中已经包含那行代码)? 使用计时器对象时,创建它时需要在Jlabel参数中放入什么?
2)如果不使用计时器对象,什么是不断更新时间的最佳方法?
//Timer timer = new Timer(1000, new ActionListener(??));
//timer.start();
long start = System.nanoTime();
String time = new java.text.SimpleDateFormat("ms").format(new java.util.Date(start/1000000));
timerlabel = new JLabel(time);
sideMenu.add(timerlabel);
timerlabel.updateUI();
您似乎不了解如何使用ActionListener
。 ActionListener
不带任何参数,因为它是一个接口。 相反,您重写其actionPerformed
方法。 您可能正在寻找的是:
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent ev) {
// Whatever action you want to happen every 1000 milliseconds
timerLabel.setText(new java.text.SimpleDateFormat("ms")
.format(new java.util.Date(System.nanoTime()/1000000)));
}
});
timer.start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.