From 9bc656a5c5d5ed639940787e222c11db11076d49 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Tue, 20 Oct 2020 10:37:31 +0200 Subject: [PATCH] TabbedPane: fixed NPE in scroll layout when removing last tab --- CHANGELOG.md | 2 +- .../main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0c58204..c38b53b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ FlatLaf Change Log - TabbedPane: Support adding custom components to left and right sides of tabs area. (set client property `JTabbedPane.leadingComponent` or `JTabbedPane.trailingComponent` to a `java.awt.Component`) (issue #40) -- TabbedPane: Support closable tabs. (issue #40) +- TabbedPane: Support closable tabs. (issues #31 and #40) - Support painting separator line between window title and content (use UI value `TitlePane.borderColor`). (issue #184) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java index 79cba85f..7536883c 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java @@ -1844,6 +1844,13 @@ public class FlatTabbedPaneUI if( !useMoreButton && (backwardButton == null || forwardButton == null) ) return; // should never occur + if( rects.length == 0 ) { + moreTabsButton.setVisible( false ); + backwardButton.setVisible( false ); + forwardButton.setVisible( false ); + return; + } + Rectangle bounds = tabPane.getBounds(); Insets insets = tabPane.getInsets(); int tabPlacement = tabPane.getTabPlacement();