How to update the label box every 2 seconds in java fx?

To solve your task using Timer you need to implement TimerTask with your code and use Timer#scheduleAtFixedRate method to run that code repeatedly:

Timer timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            System.out.print("I would be called every 2 seconds");
        }
    }, 0, 2000);

Also note that calling any UI operations must be done on Swing UI thread (or FX UI thread if you are using 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);
}

In case of JavaFX you need to update FX controls on “FX UI thread” instead of Swing one. To achieve that use javafx.application.Platform#runLater method instead of SwingUtilities

Leave a Comment