Kann JFrame in JDK7 nicht transparent und nicht verzieren, wenn Nimbus aktiviert ist

8

Sehen Sie sich dieses Bild an:

Hier ist der Code, der transparent ist der Rahmen:

%Vor%

Das funktioniert gut, aber wenn Sie versuchen, LookAndFeel durch Hinzufügen von

zu aktivieren %Vor%

es gibt mir diesen Fehler

  

Ausnahme im Thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: Der Frame ist dekoriert

Was ist das für ein Fehler? und wie man es löst?

Danke für Ihre Antworten und Vorschläge.

BEARBEITEN

Frage gestellt / CrossPosted

Azad 25.04.2013, 15:40
quelle

3 Antworten

4
  • akzeptierte Antwort von @ JamesCherrill auf Daniweb ,

  • 1.. Top-Level-Container, der auf InitialThread erstellt wurde, muss dekoriert und isDisplayable () sein, danach ist alles möglich, mit dem Rest von

  • hat wahrscheinlich eine kurze Verzögerung von Swing Timer

  • erfordert

.

%Vor%     
mKorbel 07.05.2013, 09:43
quelle
5
  

Ändere das Laf in der Hauptmethode, bevor ui von @Sri Harsha erstellt wird   Chilakapati

     

und @ Sri Harsha Chilakapati Es tut mir leid, aber ich habe dich nicht bekommen, ich werde sein   geschätzt, wenn Sie mehr von @Azad Omer

beschreiben
  • mehr im Oracle-Lernprogramm Ändern des Look and Feel ,

  • Problem wird Codezeile JFrame.setDefaultLookAndFeelDecorated(true); verursacht, erforderlich, um diese Codezeile //JFrame.setDefau...

  • zu deaktivieren / kommentieren
  • Standardmäßig gibt es kein Problem, transluzente JFrame mit Nimbus L & amp; F

  • zu erstellen

aus dem Code

%Vor%     
mKorbel 25.04.2013 16:27
quelle
3

Nach einigen Recherchen finde ich heraus, dass das Problem zwischen JDK7 und com.sun.awt.AWTUtilities liegt. Ich denke, wir sollten com.sun -Pakete nicht als letztes Mittel verwenden, da sie Probleme beim Upgrade von JDK-Versionen verursachen können ( Sie sind nicht Teil der JDK API).

Lesen Sie mehr zu diesem Thema Hier

Von Oracle

  

Das Nimbus-Look-and-Feel für Swing wurde in JDK 6u10 eingeführt   Ersatz für den alten Metal LoF. Mit JDK 7 wird Nimbus verschoben   von einer Oracle-proprietären Erweiterung (com.sun.java.swing) zu a   Standard-API (javax.swing), so dass es zu einem wahren Swing der ersten Klasse wird   Bürger.   

Es scheint so zu sein, dass com.sun.awt.AWTUtilities mit JDK6 funktioniert, aber Nimbus LAF ist in JDK7. Je weniger ich die Antwort auf meine erste Frage (Was ist das für ein Fehler), und für die zweite Frage (Wie Sie es lösen) Ich muss warten, bis die neue Version von com.sun release.

Ich bin dankbar für mKorbel , danke.

    
Azad 06.05.2013 21:59
quelle