2012-04-24 16 views
5

Tengo un proyecto Java Swing que funciona bien tanto en Windows como en Ubuntu. No tenía ningún Mac, así que no pude probarlo; He usado el tema de Nimbus como el estándar para este proyecto.Swing GUI no se muestra o muestra errores cuando se inicia en Mac

Ahora, recientemente, mi amigo probó el mismo proyecto tanto en Eclipse como en el jar exportado, y está dando errores que no se refieren a ninguna clase específica de Java que he creado.

Muestra la GUI, pero a veces se pega, o a veces los menús faltan.

que aquí hay una versión simplificada de errores que se muestran durante el lanzamiento de la interfaz gráfica de usuario:

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) 

podría decirme lo que podría ser el problema, o hay alguna mirada específica y la sensación tema que debería usar en Mac ? Nimbus no es compatible con Mac y, en caso afirmativo, ¿qué debería usar?

+0

Ok, si cambio el tema a "Aqua", comienza a funcionar, por lo que mi pregunta debería ser eliminada y quiero preguntar cómo detectar en Java, si el sistema operativo subyacente es MAC? – Johnydep

+1

En mi humilde opinión, no tocas el aspecto y la sensación en una Mac. El tema Aqua de Apple es increíble. Apple lo hizo de esa manera que incluso no tienes que establecer la apariencia. Automáticamente será Aqua en lugar de Sun Swing Metal. –

+0

@MartijnCourteaux, es verdad, pero estoy corriendo un problema con el mismo código que se ejecuta en MAC, cuando configuré explícitamente Look & Feel como "Nimbus", ¿o es que tendré que eliminar esta asignación? – Johnydep

Respuesta

6

No tocaría el tema en OS X, que es impresionante automáticamente: D

Sólo asegúrese de que usted no cambia el tema cuando se está en Mac.

Cuestiones relacionadas