0

変えてみた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) {
        }
    }
}

しかし、オンラインで例外を取得する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)

誰かがこの問題を回避するために私を助けてくれますか?

アップデート: jdk1.7.0_09

4

1 に答える 1

1

エラーはsetLookAndFeel行から発生しているようです。UIManager.getSystemLookAndFeelClassName()あなたはそれがあなたの考えを返していることを確認する必要があります。以下のコードを使用して、このシステムにインストールされているルックアンドフィールを確認することもできます。

    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!           
    }
于 2012-11-13T18:32:57.547 に答える