diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java index 87873752..f26ee6e5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/IntelliJTheme.java @@ -329,6 +329,10 @@ public class IntelliJTheme return theme.dark; } + public IntelliJTheme getTheme() { + return theme; + } + @Override public UIDefaults getDefaults() { UIDefaults defaults = super.getDefaults(); diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java index fb3e2973..196c224d 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatTestFrame.java @@ -35,6 +35,7 @@ import com.formdev.flatlaf.FlatDarkLaf; import com.formdev.flatlaf.FlatIntelliJLaf; import com.formdev.flatlaf.FlatLaf; import com.formdev.flatlaf.FlatLightLaf; +import com.formdev.flatlaf.IntelliJTheme; import com.formdev.flatlaf.demo.LookAndFeelsComboBox; import com.formdev.flatlaf.demo.intellijthemes.*; import com.formdev.flatlaf.extras.*; @@ -240,14 +241,17 @@ public class FlatTestFrame Preferences.userRoot().node( PREFS_ROOT_PATH ).put( KEY_LAF, lafClassName ); - applyLookAndFeel( lafClassName, false ); + applyLookAndFeel( lafClassName, null, false ); } - private void applyLookAndFeel( String lafClassName, boolean pack ) { + private void applyLookAndFeel( String lafClassName, IntelliJTheme theme, boolean pack ) { EventQueue.invokeLater( () -> { try { // change look and feel - UIManager.setLookAndFeel( lafClassName ); + if( theme != null ) + UIManager.setLookAndFeel( IntelliJTheme.createLaf( theme ) ); + else + UIManager.setLookAndFeel( lafClassName ); // update all components FlatLaf.updateUI(); @@ -364,7 +368,11 @@ public class FlatTestFrame prefs.remove( KEY_SCALE_FACTOR ); } - applyLookAndFeel( UIManager.getLookAndFeel().getClass().getName(), true ); + LookAndFeel lookAndFeel = UIManager.getLookAndFeel(); + IntelliJTheme theme = (lookAndFeel instanceof IntelliJTheme.ThemeLaf) + ? ((IntelliJTheme.ThemeLaf)lookAndFeel).getTheme() + : null; + applyLookAndFeel( lookAndFeel.getClass().getName(), theme, true ); } private void updateScaleFactorComboBox() {