diff --git a/CHANGELOG.md b/CHANGELOG.md index 321304f6..4c6a0cb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ FlatLaf Change Log - Button: Fixed help button styling in IntelliJ platform themes. - ScrollPane: Paint disabled border if view component (e.g. JTextPane) is disabled. +- Fixed Swing system colors in dark themes. ## 0.20 diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties index d55cd793..241112aa 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatDarkLaf.properties @@ -54,14 +54,14 @@ *.acceleratorSelectionForeground=@selectionForeground -#---- system ---- +#---- system colors ---- -control=@background -controlText=@foreground -infoText=@foreground -text=@foreground -textText=@foreground -window=@background +activeCaption=#434E60 +inactiveCaption=#393C3D +controlHighlight=#616669 +controlLtHighlight=#303234 +controlShadow=#afb3b5 +controlDkShadow=#d7d9da #---- Button ---- diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties index 6bc7843d..953d0c41 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLaf.properties @@ -61,6 +61,30 @@ ViewportUI=com.formdev.flatlaf.ui.FlatViewportUI @textComponentMargin=2,6,2,6 +#---- system colors ---- + +desktop=@textComponentBackground +activeCaptionText=@foreground +activeCaptionBorder=@@activeCaption +inactiveCaptionText=@foreground +inactiveCaptionBorder=@@inactiveCaption +window=@background +windowBorder=@foreground +windowText=@foreground +menu=@background +menuText=@foreground +text=@textComponentBackground +textText=@foreground +textHighlight=@selectionBackground +textHighlightText=@selectionForeground +textInactiveText=@disabledText +control=@background +controlText=@foreground +scrollbar=@@ScrollBar.track +info=@@ToolTip.background +infoText=@foreground + + #---- Button ---- Button.border=com.formdev.flatlaf.ui.FlatButtonBorder diff --git a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties index e50adcea..c372f7a6 100644 --- a/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties +++ b/flatlaf-core/src/main/resources/com/formdev/flatlaf/FlatLightLaf.properties @@ -54,14 +54,14 @@ *.acceleratorSelectionForeground=@selectionForeground -#---- system ---- +#---- system colors ---- -control=#e0e0e0 -controlText=@foreground -infoText=@foreground -text=@foreground -textText=@foreground -window=@background +activeCaption=#99b4d1 +inactiveCaption=#bfcddb +controlHighlight=#e3e3e3 +controlLtHighlight=#fff +controlShadow=#a0a0a0 +controlDkShadow=#696969 #---- Button ---- diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.java new file mode 100644 index 00000000..1dd624fc --- /dev/null +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.java @@ -0,0 +1,142 @@ +/* + * Copyright 2019 FormDev Software GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.formdev.flatlaf.testing; + +import java.awt.Color; +import javax.swing.*; +import net.miginfocom.swing.*; + +/** + * @author Karl Tauber + */ +public class FlatSystemColorsTest + extends FlatTestPanel +{ + public static void main( String[] args ) { + SwingUtilities.invokeLater( () -> { + FlatTestFrame frame = FlatTestFrame.create( args, "FlatSystemColorsTest" ); + frame.showFrame( FlatSystemColorsTest::new ); + } ); + } + + FlatSystemColorsTest() { + initComponents(); + + String[] systemColors = { + "desktop", + "activeCaption", + "activeCaptionText", + "activeCaptionBorder", + "inactiveCaption", + "inactiveCaptionText", + "inactiveCaptionBorder", + "window", + "windowBorder", + "windowText", + "menu", + "menuText", + "text", + "textText", + "textHighlight", + "textHighlightText", + "textInactiveText", + "control", + "controlText", + "controlHighlight", + "controlLtHighlight", + "controlShadow", + "controlDkShadow", + "scrollbar", + "info", + "infoText", + }; + + for( String systemColor : systemColors ) { + systemColorsPanel.add( new JLabel( systemColor ) ); + systemColorsPanel.add( new Preview( systemColor ), "wrap" ); + } + } + + private void initComponents() { + // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents + systemColorsPanel = new JPanel(); + + //======== this ======== + setLayout(new MigLayout( + "ltr,insets dialog,hidemode 3", + // columns + "[fill]", + // rows + "[grow,fill]")); + + //======== systemColorsPanel ======== + { + systemColorsPanel.setLayout(new MigLayout( + "hidemode 3", + // columns + "[fill]", + // rows + "[]")); + } + add(systemColorsPanel, "cell 0 0"); + // JFormDesigner - End of component initialization //GEN-END:initComponents + } + + // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables + private JPanel systemColorsPanel; + // JFormDesigner - End of variables declaration //GEN-END:variables + + //---- class Preview ---- + + private static class Preview + extends JPanel + { + private final String colorKey; + private final JPanel colorPreview; + private final JLabel colorCode; + + Preview( String colorKey ) { + super( new MigLayout( "ltr,insets 0", "[50,fill][]", "[fill]0" ) ); + + this.colorKey = colorKey; + + colorPreview = new JPanel(); + colorPreview.setOpaque( true ); + colorCode = new JLabel(); + + add( colorPreview ); + add( colorCode, "wrap" ); + + update(); + } + + @Override + public void updateUI() { + super.updateUI(); + update(); + } + + private void update() { + if( colorKey == null ) + return; // called from constructor + + Color color = UIManager.getColor( colorKey ); + colorPreview.setBackground( (color != null) ? new Color( color.getRGB(), true ) : null ); + colorCode.setText( (color != null) ? String.format( "#%06x", color.getRGB() & 0xffffff ) : "-" ); + } + } +} diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.jfd b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.jfd new file mode 100644 index 00000000..1f2c9239 --- /dev/null +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatSystemColorsTest.jfd @@ -0,0 +1,32 @@ +JFDML JFormDesigner: "7.0.0.0.194" Java: "11.0.2" encoding: "UTF-8" + +new FormModel { + contentType: "form/swing" + root: new FormRoot { + auxiliary() { + "JavaCodeGenerator.defaultVariableLocal": true + } + add( new FormContainer( "com.formdev.flatlaf.testing.FlatTestPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) { + "$layoutConstraints": "ltr,insets dialog,hidemode 3" + "$columnConstraints": "[fill]" + "$rowConstraints": "[grow,fill]" + } ) { + name: "this" + add( new FormContainer( "javax.swing.JPanel", new FormLayoutManager( class net.miginfocom.swing.MigLayout ) { + "$layoutConstraints": "hidemode 3" + "$columnConstraints": "[fill]" + "$rowConstraints": "[]" + } ) { + name: "systemColorsPanel" + auxiliary() { + "JavaCodeGenerator.variableLocal": false + } + }, new FormLayoutConstraints( class net.miginfocom.layout.CC ) { + "value": "cell 0 0" + } ) + }, new FormLayoutConstraints( null ) { + "location": new java.awt.Point( 0, 0 ) + "size": new java.awt.Dimension( 415, 350 ) + } ) + } +} diff --git a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties index d9141cd8..e63f18c3 100644 --- a/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties +++ b/flatlaf-testing/src/main/resources/com/formdev/flatlaf/testing/FlatTestLaf.properties @@ -19,6 +19,7 @@ @background=#ccffcc @foreground=#ff0000 @selectionBackground=#00aa00 +@selectionForeground=#ffff00 @selectionInactiveBackground=#888888 @selectionInactiveForeground=#ffffff @disabledText=#000088 @@ -37,7 +38,7 @@ *.inactiveBackground=#f0f0f0 *.inactiveForeground=#000088 *.selectionBackground=@selectionBackground -*.selectionForeground=#ffff00 +*.selectionForeground=@selectionForeground *.disabledBackground=#e0e0e0 *.disabledForeground=@disabledText *.disabledText=@disabledText @@ -45,6 +46,16 @@ *.acceleratorSelectionForeground=#ffffff +#---- system colors ---- + +activeCaption=#99b4d1 +inactiveCaption=#bfcddb +controlHighlight=#e3e3e3 +controlLtHighlight=#fff +controlShadow=#a0a0a0 +controlDkShadow=#696969 + + #---- Button ---- Button.startBackground=#fff