From cace4a9bfd5fb3525ad80f530511b01ace178a30 Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sun, 5 Jul 2020 11:01:58 +0200 Subject: [PATCH] Window decorations: center title if menu bar is embedded --- .../java/com/formdev/flatlaf/ui/FlatTitlePane.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java index 8659b149..5e2f442b 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTitlePane.java @@ -55,6 +55,7 @@ import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JRootPane; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.border.AbstractBorder; @@ -147,6 +148,10 @@ public class FlatTitlePane iconLabel.setBorder( new FlatEmptyBorder( UIManager.getInsets( "TitlePane.iconMargins" ) ) ); titleLabel.setBorder( new FlatEmptyBorder( UIManager.getInsets( "TitlePane.titleMargins" ) ) ); + //TODO +// titleLabel.setHorizontalAlignment( JLabel.CENTER ); +// titleLabel.setHorizontalAlignment( JLabel.RIGHT ); + leftPanel.setLayout( new BoxLayout( leftPanel, BoxLayout.LINE_AXIS ) ); leftPanel.setOpaque( false ); leftPanel.add( iconLabel ); @@ -218,14 +223,17 @@ public class FlatTitlePane } protected void activeChanged( boolean active ) { + boolean hasEmbeddedMenuBar = rootPane.getJMenuBar() != null && isMenuBarEmbedded(); Color background = FlatUIUtils.nonUIResource( active ? activeBackground : inactiveBackground ); Color foreground = FlatUIUtils.nonUIResource( active - ? (rootPane.getJMenuBar() != null && isMenuBarEmbedded() ? embeddedForeground : activeForeground) + ? (hasEmbeddedMenuBar ? embeddedForeground : activeForeground) : inactiveForeground ); setBackground( background ); titleLabel.setForeground( foreground ); + titleLabel.setHorizontalAlignment( hasEmbeddedMenuBar ? SwingConstants.CENTER : SwingConstants.LEADING ); + // this is necessary because hover/pressed colors are derived from background color iconifyButton.setBackground( background ); maximizeButton.setBackground( background );