Dan*_*ing 5 java user-interface swing stopwatch
我是Java初学者,我正在尝试构建一个简单的秒表程序,在swing GUI上显示时间.制作秒表很简单,但我找不到每秒钟更新GUI的方法,并在秒表上显示当前时间.我怎样才能做到这一点?
沿着这些方向应该做的事情:
import java.awt.EventQueue;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JFrame;
import javax.swing.JLabel;
/** @see https://stackoverflow.com/a/11058263/230513 */
public class Clock {
private Timer timer = new Timer();
private JLabel timeLabel = new JLabel(" ", JLabel.CENTER);
public Clock() {
JFrame f = new JFrame("Seconds");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(timeLabel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
timer.schedule(new UpdateUITask(), 0, 1000);
}
private class UpdateUITask extends TimerTask {
int nSeconds = 0;
@Override
public void run() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
timeLabel.setText(String.valueOf(nSeconds++));
}
});
}
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
final Clock clock = new Clock();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
该timeLabel会始终显示计时器已经运行的秒数.
创建一个容器并为其添加标签,以便您可以将其显示为GUI的一部分.
将结果与此替代使用进行比较javax.swing.Timer.
| 归档时间: |
|
| 查看次数: |
10199 次 |
| 最近记录: |