Ich versuche, ein Vollbild-Fenster zu erstellen, die den gesamten Bildschirm mit Java abdecken. Dieses Fenster muss ebenfalls transparent sein (ca. 30% -50% transparent). Wenn ich den ganzen Bildschirm sage, meine ich, dass er alles abdeckt (einschließlich Dock/Taskbar/Menüleiste in OSX/Linux/Windows), und wenn ich mit Transparenz sage, meine ich eine Echtzeittransparenz und nicht nur einen gehackten Screenshot. Hier ist, was ich bin mir bewusst-of/versucht:java Vollbild-Fenster mit Transparenz
- Mit Java Vollbild-API: während es einen echten Vollbild schafft, kann man nicht eine gewisse Transparenz mit ihm haben kann (nur undurchsichtige Farbe). Ein Hack besteht darin, einen Screenshot des gesamten Desktops zu erstellen und als Hintergrund für das Fenster festzulegen. Dies bedeutet jedoch, dass es sich nicht um Echtzeit-Transparenz handelt.
- Einstellung der Fenstergröße zur Anpassung an die Bildschirmgröße: Während der Bildschirm den gesamten Bildschirm ausfüllt, wird das Fenster in bestimmten Betriebssystemen (z. B. Mac OS X) hinter dem Dock/der Menüleiste dargestellt und nicht darüber. Transparenz funktioniert hier jedoch.
- Verwendung setWindowOpacity API: es im zweiten Fall arbeiten, aber nicht in dem ersten (Vollbild API)
- Verwendung setBackground mit alpha: es wie die setWindowOpacity arbeiten, aber nur in bestimmten OSes. Funktioniert aber auch nicht mit der Vollbild-API.
- Verwendung JFrame/JWindow/JDialog/Frame/Fenster: versuchte jedes Fenster Modell ich konnte, ohne Erfolg
Also, wenn ich frage dies möglich ist, durch einen anderen Hack, dass ich nicht bewusst bin, dann Ich würde mich freuen, davon zu hören.
Ziel ist es, einen halbtransparenten Vollbildschirm über den Desktop zu legen.
ich kurz verfolgte etwas Ähnliches in dieser Woche zu speichern. Ich hatte gehofft, einen farbigen Filter zu erstellen. Mausklicks müssen die Elemente hinter dem Filter und nicht den Filter treffen. Ich habe nicht zu hart geforscht, also wenn jemand da draußen dann klasse ist! – mrswadge
@mrswadge: Sie können Maus-Listener zu Ihrem Fenster hinzufügen und dann, wenn ein Mausereignis ausgelöst wird (z. B. Klick), das Fenster wechseln und java.awt.Robot verwenden, um das Ereignis zu simulieren (mousePress). Dies löst einen Teil Ihres Problems. Hoffen wir, dass sie den Teil über True-Fullscreen/Transparenz lösen. – ccit