Die Gestaltung der splash-screen (java)
Ich möchte das design einer splash-Bildschirm, zeigen den aktuellen Ladevorgang mit Statusanzeige,
ähnlich wie netbeans Start-Bildschirm, da es zeigt,
loading... modules, done!.... loading modules and so on
und nach dem laden fertig die wichtigste Anwendung kommt.
Ich habe gelesen, dass viele Artikel in Zusammenhang stehen, nur einen splash-screen, aber keiner von Ihnen-Adressen, über, Wie, um den Fortschritt anzuzeigen der andere hintergrund-tasks auf einem splash-screen.
Wie kann ich das erreichen?
Kann ich javafx 2 für den splash-screen, während der rest der Anwendung wird geschrieben mit java -
Gelöst!
Habe ich es endlich geschafft, zu arbeiten.
Mein Fehler war, dass ich die Aktualisierung der GUI-Inhalte in der Task-Thread, so es Meine Aufgabe, Thread wurde Gesperrt und konnte nicht führen Sie die nächsten Anweisungen nach dem GUI-update-Anleitung.Nun verschob ich diese Update-GUI-Unterricht nach Beendigung der Aufgabe und seiner Arbeit.....
Dank Jewelsea für den richtigen Weg.
- Kann ich nur schwer sagen tun Sie es nicht? Ich weiß nicht, wer eigentlich mag splash-screens - ich hasse es, wenn software schiebt es in mein Gesicht, laden Sie einfach im hintergrund und zeigen Sie das Fenster, wenn Sie es haben. Könnte nur sein mich aber.
- Meiner Ansicht splash-screens sind gut, wenn Sie Ihre software/Anwendung dauert einige Zeit zum laden wie die Einrichtung einer Datenbankverbindung, abrufen von Daten, so dass Benutzer können tatsächlich sehen, dass einige die Verarbeitung ist es.
- Sicherlich nicht, dass die Desktop-Umgebung? Zum Beispiel, KDE zeigt die bouncing-Anwendung-Symbol neben dem cursor, um dem Benutzer feedback, das die Anwendung starten. Natürlich, die beste option ist, um es einem Benutzer bevorzugt - so dass Sie halten alle glücklich.
- ya genau, meine Anwendung (javafx+java) dauert etwa 10 Sekunden zum laden...
- irgendeine Idee, wie macht netbeans das tun ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellte ich eine splash-Seite-Beispiel für eine standalone-JavaFX-2.0-Anwendung zuvor.
Ich aktualisiert die Probe, um zu demonstrieren, überwachung des Ladevorgangs über einen Fortschrittsbalken und Fortschritte text auf der splash-Seite.
Anpassung des Kodex zu überwachen den Fortschritt der Initialisierung der Anwendung, sondern als binden die
ProgressBar
zu einer WebEngine istloadWorker.workDone
Eigentum, erstellen Sie eine JavaFX - Aufgabe führt, die teure Initialisierung arbeiten und überwachen den Fortschritt derTask
über die Aufgabe progressProperty und messageProperty.Hier ist ein link zu einem splash-basierten Probe basierend auf den Task-Ansatz, die in dem vorherigen Absatz.
Für einen WebStart oder browser eingebettete JavaFX-Anwendung, verwenden Sie eine preloader wie vorgeschlagen von assylias.
Wenn du java-web-start für die Bereitstellung, die
Symbol
- element können sich auf jede von einer Vielzahl von Bildern. Fortschrittsanzeige erfolgt durch diejnlp
- client während des downloads. Der Vorteil ist, interveniert sehr früh in der Benutzer-Erfahrung.Später, ein
SwingWorker
können load image(s) in den hintergrund, wie gezeigt hier. Die Arbeiterprogress()
Methode fahren kannJProgressBar
über einePropertyChangeListener
, wie gezeigt hier.Mit einem preloader zum anzeigen des Fortschritts der Anwendung, die Initialisierung scheint zu sein, was Sie suchen.
Werfen Sie einen Blick auf die Swing splash-screen tutorial, die enthält eine Probe, in der ein progress-bar aktualisiert, auf den splash-screen. Sie könnte leicht passen Sie das Muster, um update-text statt.
JProgressBar
wie es machen wird der splash-screen verschwindet. Sie haben, um es zu zeichnen, auf derSplashScreen.createGraphics()
...Für Vollständigkeit, wenn Sie wollen, um ein Fortschrittsbalken angezeigt. Unter Angabe der
SplashScreen
javadoc:was bedeutet, dass Sie nicht verwenden können standard-AWT/Swing-Komponenten (wie
JProgressBar
), sondern nur gezogen werden kann, durch dieGraphics2D
Methoden (z.B.drawText()
,fillRect()
, ...).So hätten Sie zu emulieren ein progress-bar in einer separaten Klasse (code ist gegeben als eine sehr grobe demonstration. Sie sollten überprüfen, für
SplashScreen.isVisible()
):Dann:
Erstellen Sie auch Splash-Screen Mit java,
aber wenn Sie wollen, um code weniger, und mehr tun, als die JavaFx-Splash-screen-Komponente.