Java Vollbild-Fenster mit Transparenz

8

Ich versuche ein Vollbild-Fenster zu erstellen, das den gesamten Bildschirm mit Java abdeckt. 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 weiß / versucht:

  • Verwenden der Java-Vollbild-API: Wenn Sie einen echten Vollbildmodus erstellen, können Sie nicht mit Transparenz arbeiten (nur Deckfarbe). 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 das Fenster den gesamten Bildschirm ausfüllt, wird es in bestimmten Betriebssystemen (z. B. Mac OS X) hinter dem Dock / der Menüleiste und nicht darüber angezeigt. Transparenz funktioniert hier jedoch.
  • Verwenden der setWindowOpacity API: Es funktioniert im zweiten Fall, aber nicht in der ersten (Fullscreen API)
  • setBackground mit alpha: funktioniert wie die setWindowOpacity, aber nur in bestimmten Betriebssystemen. Funktioniert aber auch nicht mit der Fullscreen API.
  • Benutze JFrame / JWindow / JDialog / Frame / Window: probierte jedes Fenstermodell aus, das ich konnte, ohne Glück

Ich frage also, ob dies durch einen anderen Hack möglich ist, über den ich nicht informiert bin, und ich würde mich freuen, davon zu hören.

Ziel ist es, einen halbtransparenten Vollbildschirm über den Desktop zu legen.

    
ccit 06.07.2012, 12:27
quelle

1 Antwort

6
  • ist nur mit sichtbarem TaskBar e.i.
  • möglich

.

%Vor%
  • Sonst hast du eine Ausnahme und

.

%Vor%

oder indem brutte_force auf DirectX verwendet wurde, habe ich meine PC-Grafik eingefroren, nur power_off, um die PC-GPU zu speichern

%Vor%     
mKorbel 06.07.2012 12:57
quelle