CAMOBAP
CAMOBAP

Reputation: 5657

Java Swing : Failed to create resources from application bundle. Using Java-based resources

I tried to change Look&Feel

public class Main {
    public static void main(String[] args) {
        try {
            String osName = System.getProperty("os.name");
            if (osName.contains("Mac")) {
                System.setProperty("apple.laf.useScreenMenuBar", "true");
            }
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e1) {
        }
    }
}

But get exception on line UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())

java.lang.NullPointerException
Failed to create resources from application bundle.  Using Java-based resources.
    at java.io.File.<init>(File.java:222)
    at com.apple.resources.LoadNativeBundleAction.run(MacOSXResourceBundle.java:60)
    at com.apple.resources.LoadNativeBundleAction.run(MacOSXResourceBundle.java:33)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.apple.resources.MacOSXResourceBundle.getMacResourceBundle(MacOSXResourceBundle.java:29)
    at com.apple.resources.MacOSXResourceBundle.getMacResourceBundle(MacOSXResourceBundle.java:24)
    at com.apple.laf.AquaLookAndFeel.initResourceBundle(AquaLookAndFeel.java:244)
    at com.apple.laf.AquaLookAndFeel.initComponentDefaults(AquaLookAndFeel.java:260)    
    at com.apple.laf.AquaLookAndFeel.getDefaults(AquaLookAndFeel.java:227)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:520)
    at javax.swing.UIManager.setLookAndFeel(UIManager.java:564)
    at org.camobap.osx.Main.main(Main.java:26)

Can someone hepl me to avoid this problem?

Update: jdk1.7.0_09

Upvotes: 0

Views: 412

Answers (1)

Thorn
Thorn

Reputation: 4057

It looks like your error is coming from your setLookAndFeel line. You should verify that UIManager.getSystemLookAndFeelClassName() is returning what you think. You can also just check which look and feels are installed on this system with the code below:

    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            System.out.println(info.getName() + " - " + info.getClassName());
            //You can now set the look to the one you want with something like this:
            if ("Mac".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
            }
        }
    } catch (Exception e) {
        // Forget the look and feel!           
    }

Upvotes: 1

Related Questions