2012-04-04 5 views
6

Tengo una sin decorar transparente JFrame que configuro usando AWTUtilities.setWindowOpaque(this, false). En el JFrame, tengo un panel de desplazamiento; funciona perfectamente en Windows. En la Mac, todo el JFrame es arrastrable; así que cuando trato de desplazarme por el panel de desplazamiento haciendo clic y manteniendo el mouse en la barra de desplazamiento, todo el cuadro se mueve en lugar del pulgar de la barra de desplazamiento. También traté de usar setBackground(new Color(0,0,0,0)) en lugar de setWindowOpaque(), pero tiene el mismo problema. ¿Alguna idea sobre cómo solucionar este problema?Hacer JFrame rompe roturas transparentes desplazándose en Mac

+0

¿Cuál es su versión de JRE, es 1.7? –

+0

1.6.0_29 y osx lion 10.7.3 – user1309036

+0

Puede intentar configurar el fondo casi transparente, p. Ej. Color (0,0,0,10) más o menos (no está seguro del umbral exacto). – technomage

Respuesta

1

Como se sugiere en this similar thread, probar:

getRootPane().putClientProperty("apple.awt.draggableWindowBackground", Boolean.FALSE); 

Si decide usar esto, la barra de desplazamiento será utilizable y la ventana no va a arrastrar. Sin embargo, puede que tenga una ventana inamovible, a menos que agregue un MouseMotionListener y mueva la ventana en el método mouseDragged() usando una llamada como frame.setLocation().

En su lugar, puede forzar al usuario a hacer clic en los botones de flecha de la barra de desplazamiento, en lugar de arrastrar la barra de desplazamiento en sí ... Pero esa no es la idea más fácil de usar que haya visto.

Cuestiones relacionadas