This is your typical Swing event
thread issue. When you move into an actionPerformed method of an ActionListener, this method has to complete before any of SWING repainting methods get called from the SWING Thread. There are numerous articles on the net about this if you search Google.
Here is a pretty good article from java.net on the subject. The author of the article gives in interesting solution to this common problem. And while I don't agree entirely with his methodology, everything he shows you when building up to his point is worth the reading and it will show you currrent solutions that he feels are inadequate although I find them quite useful.