I suggest you call the JLabel#setText method every time the content is updated. however, due to the very monotonous nature of Swing, you need to update your widgets in the so-called Dispatch Thread (EDT) event. To do this, call SwingUtilities.invokeLater or SwingUtilities.invokeAndWait in your timer code.
That way, when the text changes due to your setText call, the JLabel events will correctly propagate and the label will be updated correctly.
source share