sclass JExtendedTabbedPane is Swingable { JTabbedPane tabs; L components; SingleComponentPanel scpBesideTabs = scp(); SingleComponentPanel scpPage = scp(); *(JTabbedPane tabs) swing { if (tabs = null) tabs = jtabs(); this.tabs = tabs; int n = tabCount(tabs); for i to n: { components.add(tabs.getComponentAt(i)); tabs.setComponentAt(i, emptyPage()); } onTabSelectedAndNow(tabs, idx -> scpPage.set(getTab(tabs, idx)); } // Something with minimum size 0 JComponent emptyPage() { ret horizontalStrut(0); } cachedVisual northAndCenter(centerAndEastWithMargin(tabs, scpBesideTabs), scpPage); }