Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Java Swing
My program has two windows. Lets call them Window A and Window B.
 
When the user loads up the program Window A appears which lets the user load up a .txt file. This .txt file contains
important data for Window B to work correctly. When the .txt file is loaded, the user clicks on a button and Window B loads up and using the data from the .txt file from Window A to correctly display.
 
No problem.
 
The problem comes when I want to use a different .txt file. On Window B I have a button which loads up Window A again to let the user type in different values. When the user clicks on the button to load Window B up again all my swing components don't display correctly. In Window B I use a BorderLayout, so when I reload Window B with the new values the right hand side of the BorderLayout seems to disappear. I think that what my program is doing is reloading all the component on-top of each other which is why it providing strange results and I am just wondering how I can rectify this issue.
 
The problem doesn't lie with the new values from the .txt files, as the values from .txt file doesn't interact with the swing components.
 
Here is the code I have when loading Window A from Window B to let the user type in different values.
 
WindowA.startFrame.setVisible(true);
WindowB.guiFrame.invalidate();
WindowB.guiFrame.dispose();
Posted 19-Feb-12 22:46pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

I assume you're trying to create the components newly. that results in a overloaded GUI with to much components to be shown. so some of them are rendered in positions that you cannot see - behind other components or outside the frame area.
 
How about just changing a the JPanel in a constant JFrame? You could dispose the non valid JPanel and create a new fresh one.
 
Also do you have a facade for the data?? You should have one, it's much easier to create the components with the new values from scratch.
  Permalink  
Comments
Willtwinny at 24-Feb-12 9:46am
   
guiFrame is a JFrame, and when I call:
WindowB.guiFrame.dispose();
doesn't seem to dispose the JFrame.
Willtwinny at 24-Feb-12 10:08am
   
I have solved it. I just removed all the components when closing down the JPanel.
Not the best of solutions but it now works.
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Just removed all the components from the Jpanel.
Not the best of solutions but it works.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Advertise | Privacy | Mobile
Web02 | 2.8.1411022.1 | Last Updated 24 Feb 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100