2012-04-04 13 views
6

Ho un trasparente non decorato JFrame che ho impostato utilizzando AWTUtilities.setWindowOpaque(this, false). Sul JFrame, ho uno scrollpane; funziona perfettamente su Windows. Su Mac, l'intero JFrame è trascinabile; così, quando provo a scorrere la rotellina facendo clic e tenendo premuto il mouse sulla barra di scorrimento, l'intera cornice si sposta invece del pollice della barra di scorrimento. Ho anche provato a utilizzare setBackground(new Color(0,0,0,0)) anziché setWindowOpaque(), ma ha lo stesso problema. Qualche idea su come risolvere questo problema?Rendere JFrame trasparente interrompe lo scorrimento su Mac

+0

Qual è la tua versione di JRE, è 1.7? –

+0

1.6.0_29 e osx lion 10.7.3 – user1309036

+0

Si potrebbe provare a impostare lo sfondo su quasi trasparente, ad es. Colore (0,0,0,10) o giù di lì (non certo della soglia esatta). – technomage

risposta

1

Come suggerito in this similar thread, provare:

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

Se si sceglie di utilizzare questo, la barra di scorrimento sarà utilizzabile e la finestra non si trascinerà. Tuttavia, potresti rimanere bloccato con una finestra immobile, a meno che non aggiungi un MouseMotionListener e sposti la finestra nel metodo mouseDragged() utilizzando una chiamata come frame.setLocation().

Invece, potresti essere in grado di forzare l'utente a fare clic sui pulsanti freccia della barra di scorrimento, invece di trascinare la barra di scorrimento stessa ... Ma non è l'idea più user-friendly che abbia mai visto.

Problemi correlati