要使用Timer解决您的任务,您需要使用代码实现TimerTask并使用Timer#scheduleAtFixedRate方法重复运行该代码:
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.print("I would be called every 2 seconds");
}
}, 0, 2000);
另请注意,调用任何UI操作必须在Swing UI线程(或FX UI线程,如果您使用JavaFX)上完成:
private int i = 0;
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
jTextField1.setText(Integer.toString(i++));
}
});
}
}, 0, 2000);
}
对于JavaFX,您需要更新“FX UI线程”而不是Swing 1的FX控件.要实现这一点,请使用javafx.application.Platform#runLater方法而不是SwingUtilities