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 noComponent() { setComponent(null); } }