JavaFX ProgressIndicator Meldung wenn Task failed

Diskutiere ProgressIndicator Meldung wenn Task failed im AWT, Swing, JavaFX & SWT Forum; Hallo zusammen, ich kenne bis jetzt nur die folgenden Zustände eine ProgressIndicator: - Determinate - Indeterminate / busy - Done Frage: Ist es...

  1. ralfb1105
    ralfb1105 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:
    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
     
  2. Java online lernen
  3. dzim
    dzim Bekanntes Mitglied
    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 gefällt das.
  4. ralfb1105
    ralfb1105 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
    müsstest Du mir bitte noch etwas genauer erklären, wenns geht vielleicht mit einem kleinen Beispiel.

    LG Ralf
     
  5. dzim
    dzim Bekanntes Mitglied
    Code (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 gefällt das.
  6. ralfb1105
    ralfb1105 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:
    Code (Java):
    FadeTransition fade1 = new FadeTransition(Duration.millis(400), labelErrorStatus);
        FadeTransition fade2 = new FadeTransition(Duration.millis(400), pi);
     
    Code (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:
    Code (Java):
    labelErrorStatus.setText("Error in Task!");
    setFadeTransitionLabelErrorStatus(true);
    Danke für Deine Antwort!
    Gruß
    Ralf
     
  7. dzim
    dzim Bekanntes Mitglied
    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.)
     
  8. Java online lernen
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

ProgressIndicator Meldung wenn Task failed - Ähnliche Themen

Textfields: Fortschritt als ProgressBar und Progressindicator
Textfields: Fortschritt als ProgressBar und Progressindicator im Forum AWT, Swing, JavaFX & SWT
Text des ProgressIndicators ändern
Text des ProgressIndicators ändern im Forum AWT, Swing, JavaFX & SWT
ProgressIndicator dreht sich nicht
ProgressIndicator dreht sich nicht im Forum AWT, Swing, JavaFX & SWT
ProgressIndicator dreht sich nicht
ProgressIndicator dreht sich nicht im Forum AWT, Swing, JavaFX & SWT
TreeTableView und ProgressIndicator
TreeTableView und ProgressIndicator im Forum AWT, Swing, JavaFX & SWT
Thema: ProgressIndicator Meldung wenn Task failed

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. javafx task failed