JavaFX ProgressIndicator Meldung wenn Task failed

ralfb1105

Bekanntes Mitglied
Hallo zusammen,
ich kenne bis jetzt nur die folgenden Zustände eine ProgressIndicator:
- Determinate
- Indeterminate / busy
- Done
Frage:
Ist es möglich eine Error Messsage bzw. das Aussehen zu verändern wenn der Task auf Fehler geht? Ich habe in der API nichts gefunden aber folgenden Wiki eintragen gelesen:
https://wiki.openjdk.java.net/display/OpenJFX/ProgressIndicator+User+Experience+Documentation
Ich bin mir nicht sicher ob das Kapitel "Error message" am Ende einen Wunsch beschreibt oder ob es das dort beschrieben Verhalten wirklich gibt:
A Dynamic Error Message may be presented when a job fails. If presented, the progress bar is dismissed and an inline error message takes its place. The error message consists of an error icon and associated error text. The intended use for this feature is for situations where only the progress bar itself is being presented to the user, such as in a table display. In other contexts alternate presentations may be preferable.

Kennt jemand eine Möglichkeit wie man so etwas realisieren kann? Ich könnte den PI auf unsichtbar setzen und daneben ein Icon einblenden, aber das ist nicht wirklich schön.

Bin für jede Idee dankbar.
Gruß
Ralf
 

dzim

Top Contributor
StackPane mit Label (z.B. in roter Farbe) oder TextArea (bei StackTrace) und oben drüber den ProgressIndicator
Per default ist der Text unsichtbar (visible=false) und der Indicator sichtbar (visible=true) - bei Fehler Text setzten und visibility tauschen.
Wenn's hübscher sein soll: statt Visibility mit der Opacity arbeiten. Bei Fehler ParallelTransition mit zwei FadeTransitions, bei der die eine die Opacity von 0 auf 1 bringt (Text) und die andere von 1 auf 0 (Indicator) - in ca 250ms. Dann gibt's nen netten Effekt.
 

ralfb1105

Bekanntes Mitglied
Hallo dzim,
Danke für Deinen Input - das hört sich schon mal nach einem guten Plan an. Das mit dem Stack Panel verstehe ich soweit, aber
Bei Fehler ParallelTransition mit zwei FadeTransitions, bei der die eine die Opacity von 0 auf 1 bringt (Text) und die andere von 1 auf 0 (Indicator) - in ca 250ms.
müsstest Du mir bitte noch etwas genauer erklären, wenns geht vielleicht mit einem kleinen Beispiel.

LG Ralf
 

dzim

Top Contributor
Java:
FadeTransition fade1 = new FadeTransition(Duration.millis(250), messageLabel);
fade1.setFromValue(0.0);
fade1.setToValue(1.0);
fade1.setAutoReverse(false);
fade1.setCycleCount(1);
fade2.setOnFinished(e -> indicator.setOpacity(1.0));
FadeTransition fade2 = new FadeTransition(Duration.millis(250), indicator);
fade2.setFromValue(1.0);
fade2.setToValue(0.0);
fade2.setAutoReverse(false);
fade2.setCycleCount(1);
fade2.setOnFinished(e -> indicator.setOpacity(0.0));
ParallelTransition pt = new ParallelTransition(fade1, fade2);
pt.play();
// Werte in From/ToValue und OnFinished anpassen, wenn du es wieder umdrehen willst

#edit: Code aus dem Gedächtnis geschrieben -> keine Garantie für absolute Korrektheit...
 

ralfb1105

Bekanntes Mitglied
Hallo dzim,

ich bin ehrlich beeindruckt was hier im Forum abgeliefert wird - so was aus dem Gedächtnis - Chapeau!
Ich habe Deinen Code bei mir dann folgendermaßen im Controller implementiert:
Java:
FadeTransition fade1 = new FadeTransition(Duration.millis(400), labelErrorStatus);
    FadeTransition fade2 = new FadeTransition(Duration.millis(400), pi);
Java:
public void setFadeTransitionLabelErrorStatus(boolean error) {
        if (error) {
            fade1.setFromValue(0.0);
            fade1.setToValue(1.0);
            fade1.setAutoReverse(false);
            fade1.setCycleCount(1);
            fade1.setOnFinished(e -> labelErrorStatus.setOpacity(1.0));
            fade2.setFromValue(1.0);
            fade2.setToValue(0.0);
            fade2.setAutoReverse(false);
            fade2.setCycleCount(1);
            fade2.setOnFinished(e -> pi.setOpacity(0.0));
            ParallelTransition pt = new ParallelTransition(fade1, fade2);
            pt.play();
        } else {
            fade1.setFromValue(1.0);
            fade1.setToValue(0.0);
            fade1.setAutoReverse(false);
            fade1.setCycleCount(1);
            fade1.setOnFinished(e -> labelErrorStatus.setOpacity(0.0));
            fade2.setFromValue(0.0);
            fade2.setToValue(1.0);
            fade2.setAutoReverse(false);
            fade2.setCycleCount(1);
            fade2.setOnFinished(e -> pi.setOpacity(1.0));
            ParallelTransition pt = new ParallelTransition(fade1, fade2);
            pt.play();
        }
    }
Dann einfach den Aufruf wenn ein Fehler passiert oder aber ich erneut einen Task starte:
Java:
labelErrorStatus.setText("Error in Task!");
setFadeTransitionLabelErrorStatus(true);

Danke für Deine Antwort!
Gruß
Ralf
 

dzim

Top Contributor
Schaut ok aus. Die mehrfache Angabe von fadeX.setAutoReverse(false); fadeX.setCycleCount(1); könnte man noch rausziehen und sich sparen (auch das ParallelTransition pt = new ParallelTransition(fade1, fade2); pt.play();). Aber das ist nur ein Detail.

BTW: Was den "aus dem Gedächtnis"-Teil angeht: Wenn du lang genug mit der API schaffst, hast du dir wichtigsten Teile irgendwann im Kopf - musst höchstens bei Details nachschlagen. Ich arbeite mit JavaFX seit etwa 7 Jahren... (Manchmal nur aus Spass, aber auch beruflich einige Desktop- und Mobile-Apps.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX Textfields: Fortschritt als ProgressBar und Progressindicator AWT, Swing, JavaFX & SWT 5
E Java FX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 8
Tort-E JavaFX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 2
G JavaFX TreeTableView und ProgressIndicator AWT, Swing, JavaFX & SWT 1
E [JavaFX]Wenn felder belegt dann Meldung Verwerfen? AWT, Swing, JavaFX & SWT 2
G Swing Meldung mit joptionpane information message AWT, Swing, JavaFX & SWT 22
M Exception Meldung aus Thread an jTextField1 übergeben AWT, Swing, JavaFX & SWT 6
A SWT: Meldung-Subclassing not allowed AWT, Swing, JavaFX & SWT 2
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
Cromewell JavaFX ImageView vergößern wenn hovered AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
C JTextField Inhalt mit Maus selektieren wenn disabled AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Fenster leer, wenn ich ein JTextField erzeuge AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Swing " comboboxes vergl. wenn aus der 1. etwas gewählt wurde ist, es in der 2. nicht mehr sichtbar AWT, Swing, JavaFX & SWT 9
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
R Swing getContentPane maximiert sich nicht mit, wenn man das JFrame maxmiert AWT, Swing, JavaFX & SWT 8
V GUI mit Swing -> Wenn IP eingegeben Domain ausgeben AWT, Swing, JavaFX & SWT 15
K JMenuItem-Shortcut WENN Menüleiste verborgen ist AWT, Swing, JavaFX & SWT 4
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
D 2 GUI-Fenster. 2.Fenster wird nicht aufgebaut, wenn erstes beschäftigt ist. AWT, Swing, JavaFX & SWT 4
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
C JButton umbennen wenn gedrückt AWT, Swing, JavaFX & SWT 9
Z Swing Wenn JFrame inaktiv - Soundbenachrichtigung bei Aktion AWT, Swing, JavaFX & SWT 2
I swing fenster neu zeichnen, wenn überdeckt AWT, Swing, JavaFX & SWT 8
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
C AWT Buttons verschwinden, wenn Fenster Vollbild gesetzt wird AWT, Swing, JavaFX & SWT 38
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
N Button akivieren, wenn Tabelle verändert worden ist AWT, Swing, JavaFX & SWT 2
W Swing Bild zeichnen wenn Maus an bestimmter Position ist AWT, Swing, JavaFX & SWT 4
GianaSisters JTable erkennung wenn Text eingefügt AWT, Swing, JavaFX & SWT 3
H Puzzle - Erkennen wenn gelöst (array vergleichen) AWT, Swing, JavaFX & SWT 10
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
xehpuk Swing JScrollBar wird nicht eingeblendet, wenn JTable befüllt wird AWT, Swing, JavaFX & SWT 4
J Swing Lazy Loading in JTree wenn gescrollt wird AWT, Swing, JavaFX & SWT 3
K JTable wird nicht aktualisiert, wenn Filter gesetzt ist AWT, Swing, JavaFX & SWT 9
M Menübar soll bestehen bleiben, wenn andere Masken geöffnet werden AWT, Swing, JavaFX & SWT 4
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
Dit_ Wenn viele NebenFenster zum Locationsetzen das HauptFenster brauchen AWT, Swing, JavaFX & SWT 2
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
T Swing JTable - true zurückbekommen, wenn der Cursor in einer Zelle blinkt AWT, Swing, JavaFX & SWT 7
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
data89 Komponenten verschwinden von JPanel, wenn ich den HG selbst male - Hilfeeee AWT, Swing, JavaFX & SWT 16
D Swing Spaltenköpfe verschieben sich nicht mit, wenn man an horizontaler Scrollbar zieht AWT, Swing, JavaFX & SWT 9
aze JTable automatisch vergrößern wenn das zugehörige JFrame vergrößert wird AWT, Swing, JavaFX & SWT 13
K Wenn Mauszeiger in der Nähe vom Kreis, soll Kreis an eine andere Stelle springen AWT, Swing, JavaFX & SWT 8
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
S Swing [gelöst] GUI-Befehle bleiben wirkungslos, wenn danach was großes gemacht wird. AWT, Swing, JavaFX & SWT 5
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
S JTable Float Column fuegt automatisch Punkt hinzu wenn man Zahlen eingibt. AWT, Swing, JavaFX & SWT 21
Spot84 scrollbar die linksbündig angezeigt wird nur anzeigen wenn sie gebraucht wird AWT, Swing, JavaFX & SWT 5
K JDialog zeigt keine Komponenten wenn es modal ist AWT, Swing, JavaFX & SWT 2
S JTable Probleme wenn ich Zelle verlasse AWT, Swing, JavaFX & SWT 4
S Funktion nur ausführen, wenn Maus über Componente ist AWT, Swing, JavaFX & SWT 2
G JTabbedPane wird groesser wenn man anderen Tab auswaehlt. AWT, Swing, JavaFX & SWT 2
N JFormattedTextField erst Verlassen, wenn Eingabe korrekt AWT, Swing, JavaFX & SWT 6
O JDialog minimieren, wenn Hauptframe minimiert wird AWT, Swing, JavaFX & SWT 4
M Button funktioniert nicht mehr wenn Schleife läuft AWT, Swing, JavaFX & SWT 3
P SWT: KeyEvents abfangen, wenn Programm minimiert ist? AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben