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)); _revalidate(SingleComponentPanel.this); } } // Sometimes we need this? void setComponentAndRevalidateParent(Component component) { setComponent(component); main.revalidate(main.getParent(this)); } void noComponent() { setComponent(null); } Component getComponent() { ret getComponentCount() == 0 ? null : getComponent(0); } }