2009-04-06 9 views
10

La UI de oscilación de los programas Java no funciona perfectamente junto con el awesome-wm. awesome es un gestor de ventanas para UNIX, que cambia automáticamente el tamaño de las ventanas de programas, y Swing-UI no reconoce estos cambios de tamaño correctamente. No me importa si es genial o si Java es culpable, lo que quiero saber si puedo cambiar mis programas Java de alguna manera, que funcionarán de maravilla. Para que los usuarios de mis programas obtengan la experiencia correcta, incluso cuando utilizan administradores de ventanas exóticos.¿Cómo puedo arreglar un programa de la GUI de Java (swing), que funciona con awesome-wm?

Respuesta

9

Desde la página del manual de impresionante:

BUGS 
    Of course there´s no bug in awesome. But there may be unexpected behaviours. 

    Java applications which use the XToolkit/XAWT backend may draw grey windows only. The XToolkit/XAWT backend breaks ICCCM-compliance 
    in recent JDK 1.5 and early JDK 1.6 versions, because it assumes a reparenting window manager. As a workaround you can use JDK 1.4 
    (which doesn´t contain the XToolkit/XAWT backend) or you can set the following environment variable (to use the older Motif backend 
    instead): AWT_TOOLKIT=MToolkit 
+0

Esto nos lleva a la siguiente excepción: Excepción en el hilo "principal" java.lang.UnsatisfiedLinkError: No se puede cargar la biblioteca:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/motif21/libmawt .so – Mnementh

+1

java-6-openjdk package only tiene i386/xawt/libmawt.so e i386/headless/libmawt.so. Sun JDK también incluye i386/motif21/libmawt.so –

+0

Gracias por esta sugerencia. Con SUN-JDK funciona. – Mnementh

3

podría encontrar que este es un problema similar al experimentado con el uso de Compiz y Java (al menos en Ubuntu), pero supongo.

La solución a este (tomado de here) es añadir la siguiente variable de entorno a su programa:

AWT_TOOLKIT="MToolkit" 
50

solución más sencilla - Obtener wmname from suckless y úselo para establecer el nombre del administrador de ventanas en LG3D:

wmname LG3D 

98% de las veces esto solucionará el problema.

+1

Esta es realmente la única opción viable, ya que la anulación AWT_TOOLKIT ya no funciona en las versiones modernas de Java, sin embargo, este truco funciona en las javas modernas. No creería cuántos meses pasé tratando de resolver este problema antes de darme cuenta de que mi administrador de ventanas lo estaba causando. –

+1

Funciona como un encanto. ¡Gracias! Y podemos instalar 'wmname' con' sudo apt-get install suckless-tools'. – tobe

+0

También funciona para mí Netbeans 8 y Awesome3 –

Cuestiones relacionadas