You are creating a new JLabel each time, then adding it to the pane (which I'm surprised works without calling revalidate). Is that really what you want to do?