Question

this title may not best describe my problem. I'm using Netbean GUI builder to create a JFrame and several JPanels. I create 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.

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top