this title may not best describe my problem. I'm using Netbean GUI builder to create a JFrame and several JPanels. I create 开发者_Go百科each JPanel in a seperate class, then I drag the JPanel class to JFrame. The problem is after dragging the JPanel to JFrame, if I add components to JPanel, it does not show the additional components in the JPanel contained in JFrame. I tried "clean and build" but the new component still not showing in JFrame -> JPanel.
Matisse keeps a cached copy of any component you add to the palette. So, subsequent changes are not automatically picked up. To pick up the changes:
- save and close your JFrame source
- Make sure the JPanel component is compiled.
- Click
Tools > Palette > Swing/AWT Components
- Right click on the tree and choose
Refresh
- Open your JFrame component. It should now be showing the updated components
I know what you mean; Matisse (NetBeans' GUI editor) lets you drag and drop self-assembled Containers (e.g. JPanels) into other Containers (e.g. JFrames), but any subsequent changes in the former will not be reflected in the latter. As far as I know, that's just the way it works, unfortunately.
It's one of the reasons I think Matisse can only be used for quick prototyping and toying around. For anything serious, the GUI must be hand-coded.
Had the same problem, all you have to do is:
1) re-compile the new JPanel subcomponent
2) close the form associated with the parent JPanel
3) re-open the parent Jpanel again from the Project tree
The refreshed subpanel should now be shown. Matisse only renders the subpanel when you either open a form or add the new subpanel. So, the only way to refresh the display without removing and re-adding the subpanel is to close and reopen it.
精彩评论