【问题标题】:How do you convert thread.sleep to javax.swing.timer?如何将 thread.sleep 转换为 javax.swing.timer?
【发布时间】:2014-01-12 22:19:42
【问题描述】:

有没有办法轻松地将 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++;
                    }
        }
    });

【问题讨论】:

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

标签: java multithreading swing user-interface timer


【解决方案1】:

一些提示:

【讨论】:

    【解决方案2】:
    • java.swing.Timer 放入您的构造函数中。您可以使用按钮.start() 计时器。
    • 也可以代替while,在计时器代码中添加一个if语句检查何时到.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();
            }
        });
    
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      相关资源
      最近更新 更多