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 trying to change JPanel content after clicking some button in a JFrame.
I use following method to change my panel content:
I used this method in my previous projects and it worked perfectly, but now something strange is happening.
The panel looks as it was empty after clicking the button which should cause the content change. But when I move my mouse over the panel
- the new content (buttons, tables, etc.) is showing (when I move my mouse over the place where the button shoud be, it immediately appears).
I tried revalidate() and repaint() methods but they don't make any difference.
Does anybody know what can possibly cause this effect?
Why do you want to remove and add panel? There is no need to do that for content change.
Content changes in Swing are be done through the model (which holds the data) and that change will automatically notify the view which can update itself.
Let us know what content is changing in the panel.
SCJP 1.4, OCMJEA/SCEA 5.0.
Joined: Nov 01, 2012
Maybe I used wrong words to describe what is changing. I have a main window (JFrame) and a panel in it (JPanel).
I also have some options to choose like f.e. books, toys, etc. Each option has its own panel (separate JPanel classes) with the table and buttons.
After choosing some option currentPanel (which is the current panel in main window) shoud change to new panel (f.e books panel, toys panel, etc.).
As I said, it worked in my previous projects that's why I'm so confused right now. It looks like the new panel is refreshing only when I move my mouse over the element of the new panel.