2010-11-12 5 views
4

J'ai un programme simple dans lequel atm affiche une fenêtre transparente avec une image dessus, qui est toujours au-dessus des autres fenêtres. Est-il possible de diriger les entrées après mon application pour pouvoir cliquer sur les programmes en dessous? Par exemple, la fenêtre est sur l'arrière-plan du bureau et je veux être capable de cliquer sur les icônes au lieu de mon "application de superposition".Possibilité de cliquer sur une application java

Merci.

Répondre

0

Je ne pense pas que vous pouvez le faire facilement, car après que votre système d'exploitation a envoyé le clic de souris à l'application Java, vous ne pouvez plus l'envoyer pour activer tout ce qui est sous l'application Java.

Vous pourriez le faire facilement si tout est à l'intérieur d'une seule application Java mais pas avec des environnements séparés.

+0

Vous pouvez le faire avec X11, mais pas trivial et sûr que l'enfer ne portable. – Falmarri

1

L'utilisation de WindowUtilsJNA accomplit cet effet sur Windows 7 (autres systèmes non testé):

JFrame frame = new JFrame(); 
//... 
frame.setAlwaysOnTop(true); 
System.setProperty("sun.java2d.noddraw", "true"); 
WindowUtils.setWindowTransparent(frame, true); 
WindowUtils.setWindowAlpha(frame, 0.6f); 

Merci au commentaire de Nate à propos setAlwaysOnTop pour en faire une option plus viable.

+1

Que se passe-t-il si vous appelez également frame.setAlwaysOnTop (true)? – Nate

+0

@Nate: Cela fonctionne! Ajout à la question. –

0

Vous pouvez cliquer sur un JFrame avec ce code ...

AWTUtilities.setWindowOpaque(this, false); 
AWTUtilities.setWindowOpacity(this, 0.8f); 
Questions connexes