From fe15078bbd6055b29207391a83f2672815afda40 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 15 Jan 2020 12:52:39 +0100 Subject: [PATCH] TabbedPane: support per component tab height --- CHANGELOG.md | 2 ++ .../java/com/formdev/flatlaf/FlatClientProperties.java | 8 ++++++++ .../java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java | 2 ++ 3 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41dcd972..c672da9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,8 @@ FlatLaf Change Log - ToggleButton: No longer use focus width for tab-style toggle buttons to compute component size, which reduces/fixes component size in "Flat IntelliJ" and "Flat Darcula" themes. +- TabbedPane: Support per component tab height (set client property + `JTabbedPane.tabHeight` to an integer). ## 0.24 diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java index 016b048b..09a84016 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java @@ -117,6 +117,14 @@ public interface FlatClientProperties */ String TABBED_PANE_HAS_FULL_BORDER = "JTabbedPane.hasFullBorder"; + /** + * Specifies the height of a tab. + *

+ * Component {@link javax.swing.JTabbedPane}
+ * Value type {@link java.lang.Integer} + */ + String TABBED_PANE_TAB_HEIGHT = "JTabbedPane.tabHeight"; + /** * Placeholder text that is only painted if the text field is empty. *

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 a4418f32..7d6415fb 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 @@ -169,6 +169,7 @@ public class FlatTabbedPaneUI switch( e.getPropertyName() ) { case TABBED_PANE_SHOW_TAB_SEPARATORS: case TABBED_PANE_HAS_FULL_BORDER: + case TABBED_PANE_TAB_HEIGHT: tabPane.revalidate(); tabPane.repaint(); break; @@ -215,6 +216,7 @@ public class FlatTabbedPaneUI @Override protected int calculateTabHeight( int tabPlacement, int tabIndex, int fontHeight ) { + int tabHeight = clientPropertyInt( tabPane, TABBED_PANE_TAB_HEIGHT, this.tabHeight ); return Math.max( tabHeight, super.calculateTabHeight( tabPlacement, tabIndex, fontHeight ) - 2 /* was added by superclass */ ); }