diff --git a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java index 7c2af75e..d88e36d0 100644 --- a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java +++ b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/ui/FlatJideTabbedPaneUI.java @@ -709,7 +709,7 @@ public class FlatJideTabbedPaneUI } private void updateArrowButtons() { - if( !scrollableTabLayoutEnabled() ) + if( !scrollableTabLayoutEnabled() || !_tabPane.isTabShown() ) return; Insets insets = _tabPane.getInsets(); @@ -739,7 +739,8 @@ public class FlatJideTabbedPaneUI y += tabAreaInsets.top; // layout buttons - x = layoutButtonHorizontal( _tabScroller.closeButton, 16, x, y, h, leftToRight ); + if( !isShowCloseButtonOnTab() ) + x = layoutButtonHorizontal( _tabScroller.closeButton, 16, x, y, h, leftToRight ); x = layoutButtonHorizontal( _tabScroller.listButton, 24, x, y, h, leftToRight ); x = layoutButtonHorizontal( _tabScroller.scrollForwardButton, 16, x, y, h, leftToRight ); x = layoutButtonHorizontal( _tabScroller.scrollBackwardButton, 16, x, y, h, leftToRight ); @@ -770,7 +771,8 @@ public class FlatJideTabbedPaneUI x += tabAreaInsets.left; // layout buttons - y = layoutButtonVertical( _tabScroller.closeButton, 16, x, y, w ); + if( !isShowCloseButtonOnTab() ) + y = layoutButtonVertical( _tabScroller.closeButton, 16, x, y, w ); y = layoutButtonVertical( _tabScroller.listButton, 24, x, y, w ); y = layoutButtonVertical( _tabScroller.scrollForwardButton, 16, x, y, w ); y = layoutButtonVertical( _tabScroller.scrollBackwardButton, 16, x, y, w ); diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.java index d7b82879..e444071b 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.java @@ -308,11 +308,11 @@ public class FlatJideOssContainerTest private void tabsClosableChanged() { boolean closable = tabsClosableCheckBox.isSelected() && tabScrollCheckBox.isSelected(); - boolean onTab = showCloseButtonOnTabCheckBox.isSelected(); + boolean onTab = closable && showCloseButtonOnTabCheckBox.isSelected(); for( JideTabbedPane tabbedPane : allTabbedPanes ) { - tabbedPane.setShowCloseButton( closable ); tabbedPane.setShowCloseButtonOnTab( onTab ); + tabbedPane.setShowCloseButton( closable ); } } @@ -325,13 +325,6 @@ public class FlatJideOssContainerTest } } - private void showCloseButtonOnTabChanged() { - boolean onTab = showCloseButtonOnTabCheckBox.isSelected(); - - for( JideTabbedPane tabbedPane : allTabbedPanes ) - tabbedPane.setShowCloseButtonOnTab( onTab ); - } - private void showCloseButtonOnSelectedTabChanged() { boolean onSelected = showCloseButtonOnSelectedTabCheckBox.isSelected(); @@ -554,7 +547,7 @@ public class FlatJideOssContainerTest //---- showCloseButtonOnTabCheckBox ---- showCloseButtonOnTabCheckBox.setText("on tab"); showCloseButtonOnTabCheckBox.setSelected(true); - showCloseButtonOnTabCheckBox.addActionListener(e -> showCloseButtonOnTabChanged()); + showCloseButtonOnTabCheckBox.addActionListener(e -> tabsClosableChanged()); tabbedPaneControlPanel.add(showCloseButtonOnTabCheckBox, "cell 2 3"); //---- showCloseButtonOnSelectedTabCheckBox ---- diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.jfd b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.jfd index 7f2b7fac..4454c5b7 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.jfd +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/jideoss/FlatJideOssContainerTest.jfd @@ -185,7 +185,7 @@ new FormModel { auxiliary() { "JavaCodeGenerator.variableLocal": false } - addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "showCloseButtonOnTabChanged", false ) ) + addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "tabsClosableChanged", false ) ) }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { "value": "cell 2 3" } )