如何将thread.sleep转换为javax.swing.timer?

如何将thread.sleep转换为javax.swing.timer?,java,multithreading,swing,user-interface,timer,Java,Multithreading,Swing,User Interface,Timer,有没有一种方法可以轻松地将thread.sleep转换为javax.swing.timer 我之所以需要这样做,是为了在按下按钮时阻止用户界面冻结,以便实现暂停按钮 代码示例: btnStartTiming.addMouseListener(new MouseAdapter() { @Override public void mouseReleased(MouseEvent arg0) { try{

有没有一种方法可以轻松地将thread.sleep转换为javax.swing.timer

我之所以需要这样做,是为了在按下按钮时阻止用户界面冻结,以便实现暂停按钮

代码示例:

btnStartTiming.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseReleased(MouseEvent arg0) {
                try{
                         inputA = Double.parseDouble(txtEnterHowLong.getText()); //Changes double to string and receives input from user
                        }catch(NumberFormatException ex){                        
                        }

            while (counter <= inputA){
                    txtCounter.setText(counter + ""); 
                    try {
                        Thread.sleep(1000);
                    } catch(InterruptedException ex) {
                        Thread.currentThread().interrupt();   
                    }
                    System.out.println(counter);
                    counter++;
                    }
        }
    });
btnStartTiming.addMouseListener(新的MouseAdapter(){
@凌驾
公共无效MouseEvent arg0{
试一试{
inputA=Double.parseDouble(txtEnterHowLong.getText());//将Double更改为字符串并从用户接收输入
}catch(NumberFormatException ex){
}
而(计数器一些提示:

  • 看看 追踪并回答具体问题。描述你目前正在努力完成的任务和工作,展示你解决问题的尝试,并提出一个可回答的问题

  • 不要使用 要在按下按钮时收听,请使用 相反,看看trail

一些提示:

  • 看看 追踪并回答具体问题。描述你目前正在努力完成的任务和工作,展示你解决问题的尝试,并提出一个可回答的问题

  • 不要使用 要在按下按钮时收听,请使用 相反,看看trail

      • java.swing.Timer
        放入构造函数中。您可以使用按钮
        启动()
        计时器
      • 您也可以在计时器代码检查中添加if语句,而不是
        while
        。stop()
像这样的

int delay = 1000;
Timer timer = new Timer(delay, null);

public Constructor(){
    timer = new Timer(delay, new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            if (counter >= inputA) {
                timer.stop();
            } else {

                // do something
            }
        }
    });
    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            timer.start();
        }
    });

}
  • java.swing.Timer
    放入构造函数中。您可以使用按钮
    启动()
    计时器
  • 您也可以在计时器代码检查中添加if语句,而不是
    while
    。stop()
像这样的

int delay = 1000;
Timer timer = new Timer(delay, null);

public Constructor(){
    timer = new Timer(delay, new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            if (counter >= inputA) {
                timer.stop();
            } else {

                // do something
            }
        }
    });
    button.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent e) {
            timer.start();
        }
    });

}

我不确定如何在这段代码中实现javax.swing.timer。教程正在等待。替换整个
while
循环。while循环的每个迭代都将映射到
java.swing.timer
的注册
ActionListener
方法的
actionPerformed
中,我不确定如何实现将javax.swing.timer插入此代码。教程正在等待。替换整个
while
循环。
while
循环的每次迭代都将映射到
java.swing.timer