Ho un progetto Java Swing che funziona bene su Windows e Ubuntu. Non avevo alcun Mac quindi non ho potuto testarlo; Ho usato il tema Nimbus come standard per questo progetto.La GUI Swing non viene visualizzata o mostrata con errori quando viene avviata su Mac.
Ora, di recente, il mio amico ha testato lo stesso progetto sia in Eclipse che in jar esportati e genera errori che non fanno riferimento a nessuna classe Java specifica che ho creato.
Mostra la GUI, ma a volte si attacca o talvolta mancano i menu.
Qui è una versione ridotta di errori mostrati mentre lancia l'interfaccia grafica:
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)
potreste dirmi quello che potrebbe essere il problema, o c'è qualsiasi look specifico and Feel tema dovrei usare su Mac ? Nimbus non è supportato su Mac e se sì, allora cosa dovrei usare?
Ok se cambio il tema in "Aqua" inizia a funzionare, quindi la mia domanda dovrebbe essere piuttosto rimossa e voglio chiedere come rilevare in java, se il SO sottostante è MAC ?? – Johnydep
IMHO, non si tocca l'aspetto di un Mac. Il tema Aqua di Apple è fantastico. Apple ha fatto in questo modo che non è nemmeno necessario impostare l'aspetto grafico. Sarà automaticamente Aqua invece di Sun Swing Metal. –
@MartijnCourteaux, vero ma sto attraversando un problema con lo stesso codice in esecuzione su MAC, quando ho impostato esplicitamente Look & Feel su "Nimbus", o dovrei rimuovere questo compito ?? – Johnydep