Swing is an event. All components work through the MVC pattern. You do not need to explicitly redraw it, hiding / showing it to refresh its presentation on the screen.
You just do yourLabel.setText("your new text") and the new text appears on the label.
Keep in mind that most GUI updates ( setText exception) should be run on EDT, so use SwingUtilities.invokeLater , etc. if you are being updated with, for example, a network message.
If you are revalidate() structural changes to the GUI, you'll have to revalidate() / repaint() though.
source share