Mam projekt Java Swing, który działa dobrze zarówno na systemie Windows i Ubuntu. Nie miałem żadnych komputerów Mac, więc nie mogłem go przetestować; Użyłem motywu Nimbus jako standard dla tego projektu.Swing GUI nie wyświetla się lub wyświetla z błędami po uruchomieniu na komputerze Mac
Niedawno mój przyjaciel przetestował ten sam projekt zarówno w Eclipse, jak i wyeksportowanym słoiku, i podaje błędy, które nie odnoszą się do żadnej konkretnej klasy Java, którą przygotowałem.
Pokazuje GUI, ale czasami się przykleja, a czasami brakuje menu.
Tutaj jest okrojona wersja błędów pokazane podczas uruchamiania 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)
Mógłbyś mi powiedzieć co może być problem, czy jest jakiś specyficzny wygląd i styl motywu I należy używać na komputerze Mac ? Czy Nimbus nie jest obsługiwany na Macu, a jeśli tak, to w czym powinienem użyć?
OK, jeśli zmienię motyw na "Aqua", zacznie działać, więc moje pytanie powinno zostać raczej usunięte i chcę zapytać jak wykryć w Javie, czy bazowym systemem operacyjnym jest MAC? – Johnydep
IMHO, nie dotykasz wyglądu i stylu na komputerze Mac. Motyw Aqua firmy Apple jest niesamowity. Apple zrobił to w ten sposób, że nawet nie musisz ustawiać wyglądu i stylu. Będzie to automatycznie Aqua zamiast Sun Swing Metal. –
@MartijnCourteaux, prawda, ale jestem uruchomiony przez problem z tym samym kodem uruchomionym na MAC, kiedy wyraźnie ustawiłem Look & Feel na "Nimbus", czy to jest to, że będę musiał usunąć to zadanie? – Johnydep