From 87845fc6f5aa16b0730a134b98eb23cb4c3eda0f Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Wed, 9 Oct 2019 12:56:56 +0200 Subject: [PATCH] added `Flat*Laf.install()` methods --- CHANGELOG.md | 1 + .../main/java/com/formdev/flatlaf/FlatDarculaLaf.java | 4 ++++ .../main/java/com/formdev/flatlaf/FlatDarkLaf.java | 4 ++++ .../java/com/formdev/flatlaf/FlatIntelliJLaf.java | 4 ++++ .../src/main/java/com/formdev/flatlaf/FlatLaf.java | 11 +++++++++++ .../main/java/com/formdev/flatlaf/FlatLightLaf.java | 4 ++++ .../test/java/com/formdev/flatlaf/FlatTestFrame.java | 6 +----- .../java/com/formdev/flatlaf/demo/FlatLafDemo.java | 6 +----- 8 files changed, 30 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61e31583..5816ad8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ FlatLaf Change Log ## Unreleased +- Added `Flat*Laf.install()` methods. - macOS: Use native screen menu bar if system property `apple.laf.useScreenMenuBar` is `true`. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarculaLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarculaLaf.java index 7022a819..15808312 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarculaLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarculaLaf.java @@ -24,6 +24,10 @@ package com.formdev.flatlaf; public class FlatDarculaLaf extends FlatDarkLaf { + public static boolean install( ) { + return install( new FlatDarculaLaf() ); + } + @Override public String getName() { return "Flat Darcula"; diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarkLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarkLaf.java index 91f9459d..9ac19520 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarkLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatDarkLaf.java @@ -24,6 +24,10 @@ package com.formdev.flatlaf; public class FlatDarkLaf extends FlatLaf { + public static boolean install( ) { + return install( new FlatDarkLaf() ); + } + @Override public String getName() { return "Flat Dark"; diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatIntelliJLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatIntelliJLaf.java index 5aa2e3ab..2133fda4 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatIntelliJLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatIntelliJLaf.java @@ -24,6 +24,10 @@ package com.formdev.flatlaf; public class FlatIntelliJLaf extends FlatLightLaf { + public static boolean install( ) { + return install( new FlatIntelliJLaf() ); + } + @Override public String getName() { return "Flat IntelliJ"; diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java index 0e5ff962..c9f74985 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -39,6 +39,7 @@ import java.util.function.Function; import javax.swing.AbstractButton; import javax.swing.JLabel; import javax.swing.JTabbedPane; +import javax.swing.LookAndFeel; import javax.swing.SwingUtilities; import javax.swing.UIDefaults; import javax.swing.UIManager; @@ -73,6 +74,16 @@ public abstract class FlatLaf private AWTEventListener mnemonicListener; private static boolean altKeyPressed; + public static boolean install( LookAndFeel newLookAndFeel ) { + try { + UIManager.setLookAndFeel( newLookAndFeel ); + return true; + } catch( Exception ex ) { + System.err.println( "Failed to initialize look and feel " + newLookAndFeel.getClass().getName() ); + return false; + } + } + @Override public String getID() { return getName(); diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLightLaf.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLightLaf.java index 48b1830b..bc9af1ac 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLightLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLightLaf.java @@ -24,6 +24,10 @@ package com.formdev.flatlaf; public class FlatLightLaf extends FlatLaf { + public static boolean install( ) { + return install( new FlatLightLaf() ); + } + @Override public String getName() { return "Flat Light"; diff --git a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java index 3ec3cdcb..5982a042 100644 --- a/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java +++ b/flatlaf-core/src/test/java/com/formdev/flatlaf/FlatTestFrame.java @@ -68,11 +68,7 @@ public class FlatTestFrame ex.printStackTrace(); // fallback - try { - UIManager.setLookAndFeel( new FlatLightLaf() ); - } catch( Exception ex2 ) { - ex2.printStackTrace(); - } + FlatLightLaf.install(); } // create frame diff --git a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java index b2e64741..ee39f72e 100644 --- a/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java +++ b/flatlaf-demo/src/main/java/com/formdev/flatlaf/demo/FlatLafDemo.java @@ -46,11 +46,7 @@ public class FlatLafDemo ex.printStackTrace(); // fallback - try { - UIManager.setLookAndFeel( new FlatLightLaf() ); - } catch( Exception ex2 ) { - ex2.printStackTrace(); - } + FlatLightLaf.install(); } // create frame