【发布时间】:2014-04-02 23:07:26
【问题描述】:
我有这个简单的 GUI 用于时间注册应用程序
由于 GUI 用于时间注册,我希望它显示一个计时器,该计时器在您按“开始”直到您按“停止”时运行。
目前这两种方法是这样完成的:
private void trStartBtnActionPerformed(java.awt.event.ActionEvent evt) {
trStartBtn.setEnabled(false);
trStopBtn.setEnabled(true);
startTime = System.nanoTime();
}
private void trStopBtnActionPerformed(java.awt.event.ActionEvent evt) {
endTime = System.nanoTime();
trStartBtn.setEnabled(true);
trStopBtn.setEnabled(false);
// Opgave Navn
String taskName = JOptionPane.showInputDialog(
this,
"Task name",
"Time Registration",
JOptionPane.INFORMATION_MESSAGE);
// Tiden det tog
long result = endTime - startTime;
double seconds = (double) result / 1000000000;
int minutes = (int)seconds / 60;
int hours = minutes / 60;
String time = hours + ";" + minutes + ";" + (int) seconds;
// Dags Dato
DateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date today = new Date();
String date = format.format(today);
DefaultTableModel m = (DefaultTableModel)trTable.getModel();
Object[] data = {date,time,taskName};
m.addRow(data);
trScrollPane.repaint();
}
但是我将如何添加功能,以使右侧的计时器每秒滴答一次,以在您使用程序时显示时间?已经有一段时间了,我对 Swing 有点生疏了。我知道创建一个线程来处理它是不安全的。
【问题讨论】:
-
查看this example 或below it 使用
JLabel
标签: java swing user-interface timer