Translucent JFrame mit System-LookAndFeel

GUI-Programmer

Top Contributor
Hallo

Ich möchte ein JFrame, bei dem der Inhalt transparent ist, die Komponenten und der Rand jedoch nicht. D.h. man sieht den Fensterrand, die Komponenten, und in den Leerräumen sieht man den Hintergrund, also das, was ein "normales" JFrame verdecken würde. Das allein hab ich bereits hinbekommen:How to Create Translucent and Shaped Windows (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Other Swing Features)

Nun möchte ich aber, anstatt von diesen LookAndFeel das LAF des Systems benutzen!

Also so wie hier: Hacking Swing: Translucent Windows - O'Reilly Media
Nur eben nicht auf der Art und Weise, da dieser Code nicht zu 100% funktioniert (v.a. auf einem langsam System --> Netbook) sondern mit den den neuen Methoden des jdk7 wie im ersten Beispiel angewand, wie es im ersten Link gezeigt wird.

Diese Methoden habe ich schon gefunden, sie machen aber eben den Rand auch transparent:
Java:
AWTUtilities.setWindowOpaque(this, false);
AWTUtilities.setWindowOpacity(this, 0.8f);

Schon im Vorraus vielen Dank!!! 🙂
 
Zuletzt bearbeitet:
Kann mir jemand sagen, ob mein Vorhaben denn überhaupt möglich ist, da anscheinend keiner Antworten auf das Thema weiß.

P.S. Hoffentlich ist es irgenwie möglich!!! 🙂

Wäre mein vorhaben vielleicht mit swt möglich, also ne shell, da swt ja viel systemnaher ist als swing???
 
Hmm so aus dem Stand wüsste ich keine klare Antwort. Allerdings wäre eine Idee von mir, mal zu schauen, ob man mit Shape auch eine Form hinbekommt, die innen hol ist. Also praktisch ein Rechteck mit einem Loch in der Mitte. Es ist immerhin möglich über AWTUtilities.setShape(...) eine solche zuzuweisen. Du kannst es ja mal probieren 🙂
 
Sowas ähnliches habe ich auch schon gemacht, weil wie bereits gesagt anscheinend niemand weis ob und wie es möglich ist!
Dabei rausgekommen ist: siehe Bild

Das Ganze funktioniert zwar sehr gut (bis auf die Performance beim Größe ändern von rechts oben und links unten) und stellt ein Frame dar, da die Klasse von JFrame erbt, allerdings wäre es viel besser das System LAF direkt zu verwenden, anstatt zu erstellen, also zu zeichen, und möglicherweise noch gegen CopyRights zu verstoßen (Deswegen auch zensiert, da die 3 Buttons fast genauso wie die von Win7 ausschauen, sind aber gezeichnet!!!)
 

Anhänge

  • Mein Frame.jpg
    Mein Frame.jpg
    54,6 KB · Aufrufe: 41
Zuletzt bearbeitet:

Zurück
Oben