6

WindowsとUbuntuの両方で正常に動作するJavaSwingプロジェクトがあります。私はMacを持っていなかったので、テストできませんでした。このプロジェクトの標準としてニンバスのテーマを使用しました。

さて、最近、私の友人がEclipseとエクスポートされたjarの両方で同じプロジェクトをテストしましたが、私が作成した特定のJavaクラスを参照しないエラーが発生しています。

GUIは表示されますが、表示されない場合や、メニューが表示されない場合があります。

GUIの起動中に表示されるエラーの簡略版を次に示します。

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at com.apple.laf.AquaMenuPainter.paintMenuBarBackground(AquaMenuPainter.java:123)
    at com.apple.laf.AquaMenuUI.paintBackground(AquaMenuUI.java:57)
    at com.apple.laf.AquaMenuPainter.paintMenuItem(AquaMenuPainter.java:160)
    at com.apple.laf.AquaMenuUI.paintMenuItem(AquaMenuUI.java:35)
    at javax.swing.plaf.basic.BasicMenuItemUI.paint(BasicMenuItemUI.java:452)
    at javax.swing.plaf.basic.BasicMenuItemUI.update(BasicMenuItemUI.java:448)
    at javax.swing.JComponent.paintComponent(JComponent.java:752)
    at javax.swing.JComponent.paint(JComponent.java:1029)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
    at javax.swing.JComponent.paintChildren(JComponent.java:862)
    at javax.swing.JComponent.paint(JComponent.java:1038)
    at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34)
    at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
    at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)  

何が問題なのか教えていただけますか、それともMacで使用すべき特定のルックアンドフィールテーマはありますか?NimbusはMacでサポートされていませんか?サポートされている場合は、何を使用すればよいですか?

4

1 に答える 1

7

私はOSXのテーマには触れません、それは自動的に素晴らしいです:D

Macを使用しているときは、テーマを変更しないように注意してください。

String osName = System.getProperty("os.name").toLowerCase();
if (!osName.contains("mac")) // if not on mac
{
   // set nimbus
}
// otherwise, do nothing. It goes automatically to Aqua.
于 2012-04-24T15:50:07.837 に答える