如何以“HH:mm:ss”格式添加秒表?

上帝

我正在为 Java 在 GUI 中创建一个简单的秒表程序。我添加了一个开始按钮,它以"seconds:nano"格式开始秒表

我实现了另一个按钮“重置”,它可以停止计时器并在需要时重置为“0:0”。我尝试使用,timer.stop()但无法重置秒表。我可以知道我提出了什么问题吗?

代码:

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.Duration;
import java.time.Instant;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class GuiStopwatch {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Stopwatch");

        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        JPanel panel = new JPanel();

        panel.setLayout(null);

        JButton Startbtn = new JButton("START");  
        JButton Stopbtn = new JButton("STOP");
        JButton Reset = new JButton("RESET");
        JLabel time = new JLabel("Time shows here");
        panel.add(Startbtn);
        panel.add(Stopbtn);
        panel.add(Reset);
        panel.add(time);
        Startbtn.setBounds(50, 150, 100, 35);
        Stopbtn.setBounds(50, 200, 100, 35);
        Reset.setBounds(50, 250, 100, 35);
        time.setBounds(50, 350, 100, 35);
        time.setBackground(Color.black);
        time.setForeground(Color.red);
        frame.add(panel);

        Startbtn.addActionListener(new ActionListener() {
            Instant start;

            @Override
            public void actionPerformed(ActionEvent e) {
                start = Instant.now();

                Timer timer = new Timer(1,new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {

                        time.setText( Duration.between(start, Instant.now()).getSeconds() +  ":" + Duration.between(start, Instant.now()).getNano() );
                    }
                });
                timer.start();
            }
        });

        Reset.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                Timer timer1 = new Timer(1,new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        time.setText( "test" );
                    }
                });
                timer1.stop();   
            }
        });
    }
}

任何帮助,将不胜感激。

奥莱VV

您正在每个“开始”和“重置”按钮上创建一个新的Timer内部actionPerformed因此,如果我单击 Start 3 次并单击 Reset 一次,则有四个计时器。我想你不是故意的。当我按下“重置”时,您会停止一个与“开始”时启动的计时器不同的计时器。

您总共只需要一个计时器。在动作侦听器之外声明它,以便两个动作侦听器都可以操作它。

您的停止按钮上还没有动作侦听器,但您可能已经意识到这一点。

顺便说一句,你能够重置计数器:至少在我的电脑上,如果我按启动第二次时,计数器似乎从0开始了,我相信它来自该行:

            start = Instant.now();

如评论中所述,您的代码可能还有其他问题。有了上面的内容,我只想回答您提出的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python-如何将秒表格式设置为hh:mm:ss而不是mm:ss:厘秒?

来自分类Dev

如何转换日期格式并向其中添加hh:mm:ss

来自分类Dev

如何以HH:MM:SS格式获取具有正确值的时间字段的正确sum()

来自分类Dev

Highcharts:如何以 HH:MM:SS 格式在 x 轴上表示一天中的时间?

来自分类Dev

如何以“yyyy/MM/dd HH:mm:ss”格式格式化给定日期“31.12.9999”

来自分类Dev

如何验证yyyy-mm-dd hh:mm:ss格式

来自分类Dev

如何验证yyyy-mm-dd hh:mm:ss格式

来自分类Dev

Java添加日期格式为dd:HH:mm:ss

来自分类Dev

如何格式化以HH:MM:SS格式给出的时间?

来自分类Dev

将数据从excel导入数据库mysql - 如何以yyyy-MM-dd HH:mm:ss格式插入cmd DateTime参数

来自分类Dev

如何修复HH:MM格式

来自分类Dev

如何使python自动以时间格式(HH:MM:SS)放置冒号

来自分类Dev

如何减去HH:MM:SS.sss格式的数据?

来自分类Dev

如何为 hh:mm:ss:ff 格式设置前导零?

来自分类Dev

如何将参数格式从DD / MM / YYY HH:MM; SS更改为DD / MM / YYYY

来自分类Dev

如何获取此日期格式CCYY-MM-DDThh:mm:ss.sss-hh:mm

来自分类Dev

Youtube API hh:mm:ss格式的seekTo()

来自分类Dev

与格式 HH:mm:ss 不匹配

来自分类Dev

HH:MM:SS 格式的 SQLite 时差计算

来自分类Dev

如何在SQL Server中将时间从dd:hh:mm:ss格式化为仅hh:mm:ss?

来自分类Dev

如何将两个格式为HH:MM:SS的日期字符串一起添加?

来自分类Dev

如何使用HH:MM:SS显示UIDatePicker

来自分类Dev

Java如何从日期获取HH:mm:ss

来自分类Dev

如何使用HH:MM:SS显示UIDatePicker

来自分类Dev

Java如何从日期获取HH:mm:ss

来自分类Dev

如何将java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S)格式化为日期(yyyy-MM-dd HH:mm:ss)

来自分类Dev

hh:mm:ss到hh:mm sql

来自分类Dev

如何正确获取“ yyyy-MM-dd HH:mm:ss”格式的日期

来自分类Dev

MS Access-如何验证以yyyy / mm / dd HH / MM / SS显示的日期时间格式

Related 相关文章

  1. 1

    Python-如何将秒表格式设置为hh:mm:ss而不是mm:ss:厘秒?

  2. 2

    如何转换日期格式并向其中添加hh:mm:ss

  3. 3

    如何以HH:MM:SS格式获取具有正确值的时间字段的正确sum()

  4. 4

    Highcharts:如何以 HH:MM:SS 格式在 x 轴上表示一天中的时间?

  5. 5

    如何以“yyyy/MM/dd HH:mm:ss”格式格式化给定日期“31.12.9999”

  6. 6

    如何验证yyyy-mm-dd hh:mm:ss格式

  7. 7

    如何验证yyyy-mm-dd hh:mm:ss格式

  8. 8

    Java添加日期格式为dd:HH:mm:ss

  9. 9

    如何格式化以HH:MM:SS格式给出的时间?

  10. 10

    将数据从excel导入数据库mysql - 如何以yyyy-MM-dd HH:mm:ss格式插入cmd DateTime参数

  11. 11

    如何修复HH:MM格式

  12. 12

    如何使python自动以时间格式(HH:MM:SS)放置冒号

  13. 13

    如何减去HH:MM:SS.sss格式的数据?

  14. 14

    如何为 hh:mm:ss:ff 格式设置前导零?

  15. 15

    如何将参数格式从DD / MM / YYY HH:MM; SS更改为DD / MM / YYYY

  16. 16

    如何获取此日期格式CCYY-MM-DDThh:mm:ss.sss-hh:mm

  17. 17

    Youtube API hh:mm:ss格式的seekTo()

  18. 18

    与格式 HH:mm:ss 不匹配

  19. 19

    HH:MM:SS 格式的 SQLite 时差计算

  20. 20

    如何在SQL Server中将时间从dd:hh:mm:ss格式化为仅hh:mm:ss?

  21. 21

    如何将两个格式为HH:MM:SS的日期字符串一起添加?

  22. 22

    如何使用HH:MM:SS显示UIDatePicker

  23. 23

    Java如何从日期获取HH:mm:ss

  24. 24

    如何使用HH:MM:SS显示UIDatePicker

  25. 25

    Java如何从日期获取HH:mm:ss

  26. 26

    如何将java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S)格式化为日期(yyyy-MM-dd HH:mm:ss)

  27. 27

    hh:mm:ss到hh:mm sql

  28. 28

    如何正确获取“ yyyy-MM-dd HH:mm:ss”格式的日期

  29. 29

    MS Access-如何验证以yyyy / mm / dd HH / MM / SS显示的日期时间格式

热门标签

归档