2012-02-15 3 views
1

J'ai besoin d'un composant AWT translucide AWT pour être placé au-dessus des autres composants pour recevoir les événements de la souris.Composant AWT transparent, possible?

Le problème ici est de créer un composant translucide. Mon enquête jusqu'à présent a montré que Swing a la possibilité de faire setOpaque(false) par exemple. un JPanel. Y at-il quelque chose de similaire pour AWT?

L'idée est de faire défiler un ScrollPane en cliquant simplement quelque part et en déplaçant la souris. C'est pourquoi j'ai besoin d'un composant transparent pour le placer au-dessus de tous les autres composants. En bref, j'ai besoin d'un composant translucide, peu importe lequel, pour placer au-dessus des autres éléments pour recevoir les événements de la souris.

Merci à l'avance

+0

Cochez cette case - http://www.jguru.com/faq/view.jsp?EID=409503 –

+0

Trouvé avant, mais cela ne fonctionne pas:/ –

+1

* "Trouvé avant .." * Il aurait payé pour * mentionner * qu'avant. Qu'avez-vous essayé d'autre? –

Répondre

1

AFAIK pas possible correctement pour AWT Container and Components préhistorique, vous pouvez essayer de changer cela avec this code from Swing to the AWT, Translucency est pris en charge pour Swing JComponents ne

+0

+1 d'accord, mais cette [réponse] (http://stackoverflow.com/a/6810665/230513) peut vous suggérer une alternative. – trashgod

+0

Serait-il possible de créer une capture d'écran du composant sous-jacent et de l'afficher sur le composant ci-dessus? Une sorte de fausse transparence. –

+0

pas sûr de ce que vous vouliez dire, s'il vous plaît vérifier Screen Image http://tips4java.wordpress.com/2008/10/13/screen-image/ par @camickr – mKorbel

0

Le JNA project fournit quelques utilitaires pour la fabrication de composants AWT translucide. Il y a une WebStart demo de la fonctionnalité. Les utilitaires de transparence de fenêtre sont dans platform.jar, ce qui augmente la base jna.jar. Cependant, si tout ce que vous voulez faire est de piéger les événements de souris, vous devriez regarder dans les différentes couches qui sont déjà intégrées dans un JFrame. Le composant a déjà un concept de couches via JLayeredPane, et vous pouvez assez facilement utiliser un JPanel comme un volet de verre qui se trouve au-dessus de tous les autres composants pour filtrer les événements.