要使用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线程”上更新FX控件,而不是摆动一个。要实现该使用
javafx.application.Platform#runLater方法而不是
SwingUtilities



