У меня была панель с компонентами, интенсивно использующими память, на которой я хотел создать только один экземпляр, но изменить его поведение, используя привлекательный JTabbedPane.
Я сделал это, создав пустые панели для каждой вкладки и третью панель, которая содержит мои (одиночные) сложные компоненты. В событии StateChange для JTabbedPane я удаляю третью панель с того, в каком из двух первых он был, и добавляю его к тому, который был выбран вновь.
Немного хак, но работает нормально.