2012-04-24 16 views
5

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?

+0

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

+1

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. –

+0

@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

risposta

6

non vorrei toccare il tema in OS X, è impressionante automaticamente: D

Basta fare in modo di non modificare il tema quando si è su Mac.

Problemi correlati