L
Lümmel
Gast
Hallo,
wie kann ich ein JWindows animieren (fade-in /out effekt) für einen Splash-screen?
wie kann ich ein JWindows animieren (fade-in /out effekt) für einen Splash-screen?
Wildcard hat gesagt.:Hier ein halbgares Projekt das ich mal angefangen habe. Ist ein wenig aufwendig, weil du mit Screenshots und Überzeichnen arbeiten musst.
Der FadeIn Animator sollte dir ein Beispiel geben.
http://jutzig.de/java/jnotification/
Wildcard hat gesagt.:JWindow hat gar keine paintComponent. JWindow ist ein Zwischending aus Heavyweight und Lightweight. Es zeichnet Lightweight Komponenten, besteht aber aus einer Heavyweight Komponente. Alles was Heavyweight ist, kennt keine Transparenz.
Um die Sache abzukürzen:
Bis auf die neueste RC Version von Java 6, die noch nicht zum Produktiveinsatz taugt, unterstützt Swing keine transparenten Fenster. Das muss also mit Screenshots vom Hintergrund und überzeichnen simuliert werden.
Doch, mit diesem Pseudo Java 7 geht das schon. Würde ich allerdings nicht verwenden, da sich kein Endanwender eine RC Version installieren sollte.Lümmel hat gesagt.:sorry das ich das jetzt erst sge aber ich benutze JAVA 6_10 RC2 Build 32 glaub ich... sprich transparente Fenster etc hab ich schon gemacht. ABER wenn du meinst das geht mit JWindow net ...
ich bin der Zeit eben voraus :wink:Wildcard hat gesagt.:Doch, mit diesem Pseudo Java 7 geht das schon. Würde ich allerdings nicht verwenden, da sich kein Endanwender eine RC Version installieren sollte.Lümmel hat gesagt.:sorry das ich das jetzt erst sge aber ich benutze JAVA 6_10 RC2 Build 32 glaub ich... sprich transparente Fenster etc hab ich schon gemacht. ABER wenn du meinst das geht mit JWindow net ...
Warum fragst du das mich? Du verwendest doch den RC.Lümmel hat gesagt.:RC2 finde ich ziemlich stabil bei mir. Wie würdest du das dann mit Java 7 machen und das Fenster transparent animieren? mit obiger GlassPane Methode? Wobei ich da ja auch ein JFrame nehmen kann mit ner GlassPane drauf...
Wildcard hat gesagt.:Warum fragst du das mich? Du verwendest doch den RC.Lümmel hat gesagt.:RC2 finde ich ziemlich stabil bei mir. Wie würdest du das dann mit Java 7 machen und das Fenster transparent animieren? mit obiger GlassPane Methode? Wobei ich da ja auch ein JFrame nehmen kann mit ner GlassPane drauf...
GlassPane alleine hilft dir sowieso nichts, solange das Window selbst noch Opaque ist.
das war doch nur ein Test...Wildcard hat gesagt.:Moment... Du hast einen JFrame der deine Anwendung darstellt? Und die GlassPane soll ein Bild darstellen das du eingangs als Splashscreen bezeichnest? Warum soll ein Splashscreen angezeigt werden wenn die Anwendung doch schon sichtbar ist? Das widerspricht sich ein wenig.
Nein, das geht nicht. Ist nunmal ein Hack für eine kleine Demo Animation, ähnlich der 'transparenten' Gnome Konsole bevor es die Composition Window Manager gab.Hobbit_Im_Blutrausch hat gesagt.:wie reagiert deine Lib denn, wenn sich im Hintergrund eine Animation abspielt? Diese wirst du vermutlich nicht bei deiner Transparenz weiter spielen lassen können!?
Wildcard hat gesagt.:Doch es geht, wie bereits gesagt. Entweder mit dem RC und schrittweise Alpha Wert erhöhen, oder mit Screenshots und Übereichnen wie im Codebeispiel.
try
{
AWTUtilities.setWindowOpacity(this, 0.1f);
Thread.sleep(1100);
AWTUtilities.setWindowOpacity(this, 0.2f);
Thread.sleep(1100);
AWTUtilities.setWindowOpacity(this, 0.3f);
Thread.sleep(1100);
AWTUtilities.setWindowOpacity(this, 0.4f);
Thread.sleep(1300);
AWTUtilities.setWindowOpacity(this, 0.5f);
Thread.sleep(1100);
AWTUtilities.setWindowOpacity(this, 0.6f);
Thread.sleep(1300);
AWTUtilities.setWindowOpacity(this, 0.7f);
Thread.sleep(1300);
AWTUtilities.setWindowOpacity(this, 0.8f);
Thread.sleep(1300);
AWTUtilities.setWindowOpacity(this, 0.9f);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
Wildcard hat gesagt.:So würdest du den EDT lahm legen, da muss schon ein separater Thread her, der das Setzen des Alpha Werts dann mit invokeLater synchronisiert.