如何在一段时间内召唤一种方法?

时间:2012-07-25 14:45:30

标签: java swing timer

我的框架中包含JTextFieldJButton。 当我按下时我想调用一个方法,每隔4/5/8秒更新一次JTextField文本。 任何人都可以帮我代码? (谢谢)

The code:    

import javax.swing.*;
public class Gui{
JFrame frame = new JFrame();
public Gui(){

frame.setLayout(new FlowLayout());

JTextField tf = new JTextField(10);
JButton    bu = new JButton("Button");

  bu.addActionListener(new ActionListener(){

        public void actionPerformed(ActionEvent event){

               for(int i=0;;i++){
               tf.setText("" + i);
               }
        }
  });
}
}

2 个答案:

答案 0 :(得分:3)

就个人而言,正如@trashgod指出的那样,我将使用java.swing.Timer,主要原因是它支持在EDT内调用通知,以及一些(通常是次要的)管理让生活更轻松的方法

答案 1 :(得分:1)

您可以尝试使用计时器:http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html

您可能希望在调用actionPerformed方法时启动计时器。

虽然最好用Swing下注,但是使用javax.swing.Timer,因为它允许你在事件发送线程上更新你的GUI。