【发布时间】:2017-03-20 11:33:10
【问题描述】:
您好,您好,我想创建一个“重置按钮”,我的计时器将在其中重置。我创建了一个新按钮并将其命名为“reset”,我使用代码“tm2.restart();”但它在我创建的新按钮中不起作用。这是我的代码:
import javax.swing.Timer;
public class deploy extends JFrame {
private int seconds;
private SimpleDateFormat df;
private boolean isRunning;
private JLabel lblTimer1;
private JButton btnStart1;
public deploy() {
lblTimer1 = new JLabel("New label");
lblTimer1.setForeground(Color.WHITE);
lblTimer1.setFont(new Font("Tahoma", Font.PLAIN, 20));
lblTimer1.setBounds(100, 231, 94, 16);
contentPane.add(lblTimer1);
Timer tm2 = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
setTimer();
seconds++;
}
});
btnStart1 = new JButton("Start");
btnStart1.setBackground(Color.LIGHT_GRAY);
btnStart1.setForeground(Color.BLUE);
btnStart1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(isRunning) {
tm2.stop();
btnStart1.setText("Start");
}else {
tm2.start();
btnStart1.setText("Stop");
}
isRunning = !isRunning;
}
});
我的计时器被格式化为“SimpleDateFormat”(00:00:00),因为我正在创建一个“网吧管理应用程序”,客户将走进并记录他/她的时间,直到他/她注销并且显示他/她将被还清的金额的消息。请帮忙。谢谢
【问题讨论】:
-
我在该代码中没有看到
tm2.restart()...请提供minimal reproducible example。 -
顺便说一句,使用 Timer 跟踪时间跨度并不是最好的主意……您可以简单地记录 2 个时间戳(登录时、注销时)并在需要时计算差异。
-
@Fildor 我不包含格式为 tm2.restart(); 的代码我删除,因为它不工作..
-
啊好吧。那我应该使用什么代码?我是 Java GUI 新手...
-
您始终可以计算从现在到过去某个时间的实际时间跨度。有多种方法可以在显示经过时间的标签上实现第二次更新。
标签: java swing user-interface timer