我有一个 Java Swing 项目,它在 Windows 和 Ubuntu 上都能正常工作。我没有任何 Mac,因此无法对其进行测试;我使用 Nimbus 主题作为这个项目的标准。
现在,最近我的朋友在 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 上使用任何特定的外观主题吗?Mac 不支持 Nimbus,如果支持,我应该使用什么?