This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'm writing an application that has one main JFrame with a menubar. ActionListeners on the menubar call a seperate class, which will generate a JPanel, and that panel then gets added to the main JFrame. As of right now, all selections from the menubar will generate the proper JPanels, and everything works as intended. However, if I generate one type of JPanel, and then select a different one, I get graphical corruption. It looks as though components are being drawn on top of what's already there.
How do I reset the JFrame, making it a "blank slate" before I add a new JPanel?
Sounds like you're adding new JPanel's on top of the existing ones, or adding the same one twice. JFrame.getContentPane().removeAll() is what you're looking for, though the fact that you're having makes me believe you should probably rethink your design.