当前位置: 首页 > 知识库问答 >
问题:

无法在java中更新我的计时器的分钟和小时标记。摆动

丁振海
2023-03-14

我想用java做秒表。秋千和秒表课。java,但由于某种原因,当我运行它时,只有几秒钟有效,而小时和分钟保持在0。你能帮我吗?

这是秒表。java类

    public class Cronometro {
    private int secondi;
    private int minuti;
    private int ore;
    private boolean state=true;
    
    public Cronometro(){
        
    }
    
    public void crono(JLabel s, JLabel m, JLabel h, ActionEvent evt){
        state=true;
        
        Thread t = new Thread(){
            public void run(){
                for(;;){
                    if(state==true){
                       try{
                           sleep(10);
                           secondi++;
                           if(secondi>60){
                               secondi=0;
                               minuti++;
                               
                           }
                           if(minuti>60){
                               secondi=0;
                               minuti=0;
                               ore++;
                           }
                           s.setText(" :"+secondi);
                           m.setText(" : "+minuti);
                           h.setText(""+ore);
                       } catch(Exception e){
                           
                       }
                    }
                    else{
                        break;
                    }
                }
            }
        };
        
        t.start();
    }
    
    public void setState(boolean state){
        this.state=state;
    }
    
}

gui/main。java几乎都是由netbeans生成的

共有1个答案

洪伟兆
2023-03-14

这就是如何使用Swing定时器每秒运行update

class Cronometro {
    private int secondi;
    private int minuti;
    private int ore;
    private boolean state=true;
    private Timer timer;

    private final JLabel s, m,  h;

    public Cronometro(JLabel s, JLabel m, JLabel h) {
        super();
        this.s = s;
        this.m = m;
        this.h = h;
    }

    public void crono(JLabel s, JLabel m, JLabel h){
        state=true;
        if(timer != null) {
            timer.stop();
        }

        timer = new Timer(1000, e->update());
        timer.start();
    }

    public void update(){

        if(! state) return;
            try{
                secondi++;
                if(secondi>60){
                    secondi=0;
                    minuti++;

                }
                if(minuti>60){
                    secondi=0;
                    minuti=0;
                    ore++;
                }
                s.setText(" :"+secondi);
                m.setText(" : "+minuti);
                h.setText(""+ore);
            } catch(Exception e){
                e.printStackTrace();
            }
    }

    public void setState(boolean state){
        this.state=state;
    }
}
 类似资料:
  • 我正在试着用java.swing做一个秒表和一个秒表我已经试过秋千了。定时器和定时器任务。你能帮帮我吗? 这是stopwatch.java课 gui/main。java几乎都是由netbeans生成的

  • 我试图创建一个倒计时计时器,努力让它显示小时、分钟、秒。 努力使分钟和小时正确显示。 除此之外,我还需要计时器在午夜开始计时17小时。按照3600*17(17小时)的思路思考,然后去掉剩余的持续时间?

  • 我需要帮助来了解时钟偏差的工作原理。我们定义时钟偏差来处理双方之间的时间变化。但是,我的困惑是: 我们在令牌本身中有所有信息,如令牌创建时间和过期时间 可以验证令牌 令牌在服务器上创建 那么,为什么我们需要时钟偏差呢?谁能给我一个例子,说明它是如何工作的,以及在哪些情况下它会导致问题或好处?

  • 我的函数返回时间,例如。如何将时间取整到最接近的一分钟,使变为并使变为。

  • 我们正试图实现基于Yammer metrics信息的报告功能。 Yammer metrics提供了有关计时器和计量器的信息,如下所示: 我阅读了概述并能够获得如上所示的应用程序统计信息。计时器和仪表指标包含有关1分钟速率、5分钟速率和15分钟速率的信息。 问题: 计时器和仪表指标的分钟速率表示什么,以及这些是如何计算的?

  • 我想在我的应用程序中添加一个时钟,它告诉你已经做了多长时间的任务。为了简化它,我包含了一个计数器,它在新线程中每秒递增一次,并用计数器号更新标签“Set Timer”。为此,我在我的.fxml文件中有一个标签fx:id=“settimer”,并将其导入到我的类中。 我试过很多方法来解决我的问题,但我还没有找到正确的方法。我对我想做什么的想法应该很清楚,如果有人能帮助我,我会很高兴的。我的问题是更新