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 9e865a41..c2d69034 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java @@ -833,6 +833,10 @@ public abstract class FlatLaf public Object createValue( UIDefaults table ) { Font defaultFont = UIManager.getFont( "defaultFont" ); + // fallback (to avoid NPE in case that this is used in another Laf) + if( defaultFont == null ) + defaultFont = UIManager.getFont( "Label.font" ); + if( lastDefaultFont != defaultFont ) { lastDefaultFont = defaultFont; diff --git a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java index 42b269c5..6aa3822a 100644 --- a/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java +++ b/flatlaf-jide-oss/src/main/java/com/formdev/flatlaf/jideoss/FlatJideOssDefaultsAddon.java @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.Map; import javax.swing.LookAndFeel; import javax.swing.UIDefaults; +import javax.swing.UIManager; import javax.swing.UIDefaults.ActiveValue; import com.formdev.flatlaf.FlatDefaultsAddon; import com.formdev.flatlaf.FlatLaf; @@ -70,6 +71,9 @@ public class FlatJideOssDefaultsAddon * own UI defaults, we have to first remember our UI defaults in the initializer * (invoked before JIDE overwrites UI defaults) and then restore them in the customizer. *

+ * Do not register this class yourself with JIDE. + * It is automatically registered. + *

* Invoked from {@link LookAndFeelFactory#installJideExtension()}. */ public static class FlatJideUIDefaultsCustomizer @@ -79,6 +83,10 @@ public class FlatJideOssDefaultsAddon @Override public void initialize( UIDefaults defaults ) { + // do nothing in other Lafs if (wrongly) registered with LookAndFeelFactory.addUIDefaultsInitializer() + if( !(UIManager.getLookAndFeel() instanceof FlatLaf) ) + return; + jideDefaults = new HashMap<>(); for( Map.Entry e : defaults.entrySet() ) { @@ -96,6 +104,10 @@ public class FlatJideOssDefaultsAddon @Override public void customize( UIDefaults defaults ) { + // do nothing in other Lafs if (wrongly) registered with LookAndFeelFactory.addUIDefaultsCustomizer() + if( !(UIManager.getLookAndFeel() instanceof FlatLaf) ) + return; + if( jideDefaults != null ) { defaults.putAll( jideDefaults ); jideDefaults = null;