sclass SingleComponentPanel extends JPanel { *() { super(new BorderLayout); } *(Component component) { this(); if (component != null) setComponent(component); } void setComponent(final Component component) { swing { removeAll(); if (component != null) add(BorderLayout.CENTER, wrap(component)); main.revalidate(SingleComponentPanel.this); } } void setComponentAndRevalidateParent(Component component) { setComponent(component); revalidate(getParent(this)); } void noComponent() { setComponent(null); } }