JavaFX Frage zum Logging

friednoodles

Aktives Mitglied
Hi,
habe ein kleines Problem mit dem Logging, bzw. der von mir gewollten Anzeige hierfür.
Ich versuche mal das Problem so kurz wie möglich zu schildern:

Ich habe in einer Klasse "ConverterTools" vier if Verzweigungen die mögliche User Eingaben abfangen und ggf. weiterverarbeiten oder als Fehler abfangen. Zwei von diese Verzweigungen sind für Fehler gedacht, welche ich mir per Logger speichern lasse.
Nun möchte ich mir diese Log Nachrichten auch in einem kleinen TextField anzeigen lassen für einen kurzen Zeitraum, damit der User weiß was schief gelaufen ist.

Wie bekomme ich das am besten hin? Folgendes habe ich bereits versucht:
Java:
void showResultAndAddLineToTable() {
        String newValue = startBox.textField.getText();
        // String errorMsg = ConverterTools.log

        try {
            startBox.textArea.setText(ConverterTools.patternQuery(newValue));
        } catch (PatternQueryException e) {
            // startBox.errorField.setText(ConverterTools.patternQuery(errorMsg));
            log.error("??", e);
        } catch (Exception e) {
            startBox.errorField.setText("an unknown error has occurred");
            log.error("Unexcpected error", e);
        }

        printTableLine.add(new Result(newValue, startBox.textArea.getText()));
    }

Alles was hinter // kommt war mein kläglicher Versuch und funktioniert irgendwie nicht.
Und wie schaffe ich es innerhalb der Methode showResultAndAddLineToTable() beim ersten catch zwischen zwei verschiedenen Fehlern zu unterscheiden?

Danke für mögliche Hinweise!
 

dzim

Top Contributor
Wow ich hab einen komischen Fehler: wenn ich die Frage hier öffne, verschwindet sie gleich wieder und ich sehe nur einen leeren Bereich... Zum Glück gibt's Developer-Tools.

Ich würde das Problem mit einer Timeline angehen:
Hier hab ich mal ein Beispiel gemacht:
https://github.com/bgmf/poc/blob/ma...n/java/eu/dzim/tests/fx/MainTimelineText.java

Dabei fiel mir auf, dass ich auch mal für irgendwen eine Blink-"Animation" über eine Timeline gefixt hab:
https://github.com/bgmf/poc/blob/ma...src/main/java/eu/dzim/tests/fx/MainBlink.java

Hoffe, das hilft

#edit: Hier noch der Code
Java:
package eu.dzim.tests.fx;

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Duration;

public class MainTimelineText extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    Stage primaryStage = null;

    @Override
    public void start(Stage stage) {

        this.primaryStage = stage;

        stage.setTitle("Window");
        stage.setMinWidth(640);
        stage.setMinHeight(480);

        final Label label = new Label();

        Button b1 = new Button("1) Show Text in 2.5s");
        b1.setOnAction(e -> {

            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2500), ae -> {
                label.setText("Text after 2.5s");
                ae.consume();
            }));
            timeline.play();

            e.consume();
        });

        Button b2 = new Button("2) Show Text now and remove in 2.5s");
        b2.setOnAction(e -> {

            label.setText("Remove this text after 2.5s");
            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2500), ae -> {
                label.setText("");
                ae.consume();
            }));
            timeline.play();

            e.consume();
        });

        Button b3 = new Button("3) Show Text with multiple frames");
        b3.setOnAction(e -> {

            KeyFrame kf1 = new KeyFrame(Duration.ONE, ae -> label.setText("This ist the first text. Will be replaces in 2.5s"));
            KeyFrame kf2 = new KeyFrame(Duration.millis(2500), ae -> label.setText("This ist the second text. Will be remove in another 2.5s"));
            KeyFrame kf3 = new KeyFrame(Duration.millis(5000), ae -> label.setText("")); // be aware: all frames are started at the same time here

            Timeline timeline = new Timeline(kf1, kf2, kf3);
            timeline.play();

            e.consume();
        });

        Button b4 = new Button("4) Show Text with multiple frames, variation");
        b4.setOnAction(e -> {


            KeyFrame kf1 = new KeyFrame(Duration.ONE, new KeyValue(label.textProperty(), "This ist the first text. Will be replaces in 2.5s"));
            KeyFrame kf2 = new KeyFrame(Duration.millis(2500), new KeyValue(label.textProperty(), "This ist the second text. Will be remove in another 2.5s"));
            KeyFrame kf3 = new KeyFrame(Duration.millis(5000), new KeyValue(label.textProperty(), "")); // be aware: all frames are started at the same time here

            Timeline timeline = new Timeline(kf1, kf2, kf3);
            timeline.play();

            e.consume();
        });

        VBox container = new VBox(5.0);
        container.getChildren().addAll(b1, b2, b3, b4);

        BorderPane root = new BorderPane();
        root.setCenter(container);
        root.setBottom(label);

        Scene scene = new Scene(root, 640, 480);

        stage.setScene(scene);
        stage.show();
    }
}
 

friednoodles

Aktives Mitglied
Wow ich hab einen komischen Fehler: wenn ich die Frage hier öffne, verschwindet sie gleich wieder und ich sehe nur einen leeren Bereich... Zum Glück gibt's Developer-Tools.

Ich würde das Problem mit einer Timeline angehen:
Hier hab ich mal ein Beispiel gemacht:
https://github.com/bgmf/poc/blob/ma...n/java/eu/dzim/tests/fx/MainTimelineText.java

Dabei fiel mir auf, dass ich auch mal für irgendwen eine Blink-"Animation" über eine Timeline gefixt hab:
https://github.com/bgmf/poc/blob/ma...src/main/java/eu/dzim/tests/fx/MainBlink.java

Hoffe, das hilft

#edit: Hier noch der Code
Java:
package eu.dzim.tests.fx;

import javafx.animation.KeyFrame;
import javafx.animation.KeyValue;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Duration;

public class MainTimelineText extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    Stage primaryStage = null;

    @Override
    public void start(Stage stage) {

        this.primaryStage = stage;

        stage.setTitle("Window");
        stage.setMinWidth(640);
        stage.setMinHeight(480);

        final Label label = new Label();

        Button b1 = new Button("1) Show Text in 2.5s");
        b1.setOnAction(e -> {

            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2500), ae -> {
                label.setText("Text after 2.5s");
                ae.consume();
            }));
            timeline.play();

            e.consume();
        });

        Button b2 = new Button("2) Show Text now and remove in 2.5s");
        b2.setOnAction(e -> {

            label.setText("Remove this text after 2.5s");
            Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2500), ae -> {
                label.setText("");
                ae.consume();
            }));
            timeline.play();

            e.consume();
        });

        Button b3 = new Button("3) Show Text with multiple frames");
        b3.setOnAction(e -> {

            KeyFrame kf1 = new KeyFrame(Duration.ONE, ae -> label.setText("This ist the first text. Will be replaces in 2.5s"));
            KeyFrame kf2 = new KeyFrame(Duration.millis(2500), ae -> label.setText("This ist the second text. Will be remove in another 2.5s"));
            KeyFrame kf3 = new KeyFrame(Duration.millis(5000), ae -> label.setText("")); // be aware: all frames are started at the same time here

            Timeline timeline = new Timeline(kf1, kf2, kf3);
            timeline.play();

            e.consume();
        });

        Button b4 = new Button("4) Show Text with multiple frames, variation");
        b4.setOnAction(e -> {


            KeyFrame kf1 = new KeyFrame(Duration.ONE, new KeyValue(label.textProperty(), "This ist the first text. Will be replaces in 2.5s"));
            KeyFrame kf2 = new KeyFrame(Duration.millis(2500), new KeyValue(label.textProperty(), "This ist the second text. Will be remove in another 2.5s"));
            KeyFrame kf3 = new KeyFrame(Duration.millis(5000), new KeyValue(label.textProperty(), "")); // be aware: all frames are started at the same time here

            Timeline timeline = new Timeline(kf1, kf2, kf3);
            timeline.play();

            e.consume();
        });

        VBox container = new VBox(5.0);
        container.getChildren().addAll(b1, b2, b3, b4);

        BorderPane root = new BorderPane();
        root.setCenter(container);
        root.setBottom(label);

        Scene scene = new Scene(root, 640, 480);

        stage.setScene(scene);
        stage.show();
    }
}

Super, danke für deine Hilfe!
Ich habe Teile so in mein Programm eingefügt das sie aus meiner Sicht eigentlich funktionieren sollten, aber ein Problem habe ich irgendwie doch noch. Falls ich nun in der if-Verzweigung in "newValue.isEmpty()" gehe wird mir für 2,5 Sekunden keine Fehlermeldung angezeigt und danach taucht sie auf und bleibt permanent stehen. Das sollte gerade andersrum laufen :D
Was mache ich falsch? Hier der Code

Java:
public void showResultAndAddLineToTable() {
        String newValue = startBox.textField.getText();

        try {
            startBox.textArea.setText(ConverterTools.patternQuery(newValue));
        } catch (PatternQueryException e) {

            if (newValue.isEmpty()) {
                emptyErrorFieldTimeLine();
            } else if (newValue != NUMBERPATTERN) {
                startBox.errorField.setText("Only 13 digits and the input format yyyy-MM-dd HH:mm:ss are convertable");
            } else if (newValue != DATEPATTERN) {

            }

        } catch (Exception e) {
            startBox.errorField.setText("an unknown error has occurred");
            log.error("Unexcpected error", e);
        }
        printTableLine.add(new Result(newValue, startBox.textArea.getText()));
    }
Java:
    public void emptyErrorFieldTimeLine() {
        Timeline timeline = new Timeline(new KeyFrame(Duration.millis(2500),
                ae -> startBox.errorField.setText("You can't convert an empty input")));
        timeline.play();
    }
 

Robat

Top Contributor
Quick and dirty:
Java:
HBox root = new HBox();

Label label = new Label("");

Button button = new Button("Show");
button.setOnAction(event -> {
    KeyFrame showTextFrame = new KeyFrame(Duration.ONE, e -> label.setText("Hallo"));
    KeyFrame clearTextFrame = new KeyFrame(Duration.millis(2500), e -> label.setText(""));
    Timeline timeline = new Timeline(showTextFrame, clearTextFrame);
    timeline.playFromStart();
});

root.getChildren().addAll(label, button);

primaryStage.setScene(new Scene(root));
primaryStage.show();
 

friednoodles

Aktives Mitglied
Quick and dirty:
Java:
HBox root = new HBox();

Label label = new Label("");

Button button = new Button("Show");
button.setOnAction(event -> {
    KeyFrame showTextFrame = new KeyFrame(Duration.ONE, e -> label.setText("Hallo"));
    KeyFrame clearTextFrame = new KeyFrame(Duration.millis(2500), e -> label.setText(""));
    Timeline timeline = new Timeline(showTextFrame, clearTextFrame);
    timeline.playFromStart();
});

root.getChildren().addAll(label, button);

primaryStage.setScene(new Scene(root));
primaryStage.show();

Perfekt, vielen Dank!
Damit wäre dieses Thema erledigt :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
thor_norsk Java - Allgemeine - Frage AWT, Swing, JavaFX & SWT 14
thor_norsk Allgemeine Frage AWT, Swing, JavaFX & SWT 10
M Frage zu Java Bundesligaverwaltung AWT, Swing, JavaFX & SWT 7
thor_norsk Allgemeine Frage AWT, Swing, JavaFX & SWT 9
E Frage zum Textfeld AWT, Swing, JavaFX & SWT 8
H Swing JMenu aufgeklappt oder nicht - Wie frage ich das ab? AWT, Swing, JavaFX & SWT 5
pkm Frage wegen java.lang.IllegalStateException bei DocumentListener AWT, Swing, JavaFX & SWT 4
D Frage zu ActionListenern und AvtionEvents AWT, Swing, JavaFX & SWT 2
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
ralfb1105 Swing Frage zu SwingWorker Verhalten bei cancel() AWT, Swing, JavaFX & SWT 2
J Frage zu setuserdata AWT, Swing, JavaFX & SWT 1
N Frage zu ListView AWT, Swing, JavaFX & SWT 11
L 2D-Grafik Frage zu Ellipse2D.Double, Abfrage, ob Punkt enthalten ist funktioniert nicht AWT, Swing, JavaFX & SWT 3
T Frage zu GUI - Button soll Objekt erfassen AWT, Swing, JavaFX & SWT 2
J Event Handling Frage zu der Funktion addActionListener AWT, Swing, JavaFX & SWT 2
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
T JavaFX Frage zum FX-Loader AWT, Swing, JavaFX & SWT 3
B drawRect Frage und Aufgabenstellung AWT, Swing, JavaFX & SWT 10
fLooojava GridLayout - Frage bezüglich Kachelgröße AWT, Swing, JavaFX & SWT 5
S Frage zu java.awt.EventQueue AWT, Swing, JavaFX & SWT 1
J Frage zu Java Projekt [2D Game] AWT, Swing, JavaFX & SWT 3
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
M Frage zum Loggen von Fehlern AWT, Swing, JavaFX & SWT 3
T Swing API Frage zu Verzeichnisbäumen und JTree AWT, Swing, JavaFX & SWT 1
M Thread-Frage in SWT AWT, Swing, JavaFX & SWT 1
Q Cursor Frage AWT, Swing, JavaFX & SWT 8
W JavaFX TableView frage AWT, Swing, JavaFX & SWT 5
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
I Grundsätzliche Frage zu ItemListener AWT, Swing, JavaFX & SWT 11
X Kurze Frage zu JPopup AWT, Swing, JavaFX & SWT 3
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
D Frage zu JFrame und Graphics AWT, Swing, JavaFX & SWT 4
J Swing Frage zur Vorgehensweise (JTable?, JLabels?) AWT, Swing, JavaFX & SWT 8
S Frage zu Jtable / CellEditor AWT, Swing, JavaFX & SWT 1
kaoZ Frage zum einfügen von Componenten AWT, Swing, JavaFX & SWT 14
N Swing JTable anfänger frage AWT, Swing, JavaFX & SWT 2
S GridBagLayout-Frage AWT, Swing, JavaFX & SWT 1
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
F Swing JComboBox - Frage zur Größe AWT, Swing, JavaFX & SWT 11
G noch eine Frage zum EventDispachThread AWT, Swing, JavaFX & SWT 4
D MVC Frage AWT, Swing, JavaFX & SWT 6
Z Flackern trotz Offscreen Image / Doublebuffer, (+ Frage zu Pixelvergleich) AWT, Swing, JavaFX & SWT 25
GianaSisters 2D-Grafik BufferedImage.getSubimage - Frage AWT, Swing, JavaFX & SWT 7
M Frage zu KeyListener bzgl. JApplet AWT, Swing, JavaFX & SWT 3
M Frage zu Threads AWT, Swing, JavaFX & SWT 3
N Swing JComboBox Frage AWT, Swing, JavaFX & SWT 5
Luk10 g.drawString funktioniert nicht + Frage zur Text-Rendering Qualität AWT, Swing, JavaFX & SWT 7
Luk10 Frage zu Farb-Komposition AWT, Swing, JavaFX & SWT 9
K Gui Layout Frage AWT, Swing, JavaFX & SWT 5
V SWT Import Wizard - frage zur WizardPage AWT, Swing, JavaFX & SWT 5
N Swing Frage JXMapviewer AWT, Swing, JavaFX & SWT 4
GUI-Programmer Wieder ne Layout Frage AWT, Swing, JavaFX & SWT 11
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
lumo SWT Zeichnen bescheunigen bzw eine allg. Frage AWT, Swing, JavaFX & SWT 8
H Frage zu übergebenem Vector bzw. Boolean AWT, Swing, JavaFX & SWT 3
C 2D-Grafik BufferedImage laden, Frage zum Code AWT, Swing, JavaFX & SWT 2
VfL_Freak Swing Frage zu "new JPasswordField( 10 )" AWT, Swing, JavaFX & SWT 6
H Frage zu WindowBuilder Pro AWT, Swing, JavaFX & SWT 3
C Frage/Problem mit Jpanel AWT, Swing, JavaFX & SWT 4
S Frage zu TextArea AWT, Swing, JavaFX & SWT 2
GUI-Programmer Zeichnen in Swing - Frage AWT, Swing, JavaFX & SWT 6
Luk10 Frage zu Mouseevents AWT, Swing, JavaFX & SWT 7
J Refreshing Swing Frage AWT, Swing, JavaFX & SWT 10
F Frage zu Event KeyTyped bei jPanel AWT, Swing, JavaFX & SWT 4
A Frage zu StringBuilder AWT, Swing, JavaFX & SWT 2
S allg. Frage zur GUI-Architektur AWT, Swing, JavaFX & SWT 5
A Frage zu JDialog AWT, Swing, JavaFX & SWT 3
A Frage zur Methode matches() AWT, Swing, JavaFX & SWT 2
P LayoutManager Verständnis-Frage GridBagLayout AWT, Swing, JavaFX & SWT 7
H Allgemeine Frage zu Grafikfähigkeiten von Java AWT, Swing, JavaFX & SWT 24
D Repaint Frage, Design Frage AWT, Swing, JavaFX & SWT 2
Jats Frage zu JLabel & JTextField AWT, Swing, JavaFX & SWT 4
Y frage zu BufferedImage AWT, Swing, JavaFX & SWT 7
hdi Swing Frage zu invokeAndWait() Exceptions AWT, Swing, JavaFX & SWT 8
P Swing Frage zu paintComponent/getGraphics AWT, Swing, JavaFX & SWT 4
M Frage nach Swing Element AWT, Swing, JavaFX & SWT 3
S Frage zu Graphics2D AWT, Swing, JavaFX & SWT 3
T AWT Frage zu AWT AWT, Swing, JavaFX & SWT 5
B Frage zu Swing,Threads, SwingWorker und Socket Communikation AWT, Swing, JavaFX & SWT 4
F unspezifizierte Frage zu JTable/ Model AWT, Swing, JavaFX & SWT 6
B SWT Frage zu MVC und Data-Binding AWT, Swing, JavaFX & SWT 8
T LookAndFeel Look and Feel Frage AWT, Swing, JavaFX & SWT 2
J Java2D Kreis/Kurven Frage AWT, Swing, JavaFX & SWT 2
P Kurze Frage zur Gestaltung eines vertikalen Menüs AWT, Swing, JavaFX & SWT 2
Dit_ Frage zum Thema SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 5
Eldorado Frage zur Anwendung des MVC-Konzept AWT, Swing, JavaFX & SWT 33
G Frage zu processMouseEvent AWT, Swing, JavaFX & SWT 6
M Zoomen in ein JPanel... und eine andere kleine Frage AWT, Swing, JavaFX & SWT 3
D Swing implementierungs-technische Frage zu JList/AbstractListModel AWT, Swing, JavaFX & SWT 7
C Event Frage AWT, Swing, JavaFX & SWT 7
A Frage zu GridLayout AWT, Swing, JavaFX & SWT 4
F Frage zu WindowListeners AWT, Swing, JavaFX & SWT 2
E einfache Frage:warum ist Hintergrund grau ? AWT, Swing, JavaFX & SWT 24
E einfache Frage zu paintComponent und Graphics AWT, Swing, JavaFX & SWT 7
C Frage zu ActionListenern AWT, Swing, JavaFX & SWT 7
D Frage @ someActionEvent.getActionCommand() AWT, Swing, JavaFX & SWT 2
Kr0e Allgemeine Frage zu Java2D (Eigene Impl.) AWT, Swing, JavaFX & SWT 18
L Einfache Layout Frage für Applet -> Was mache ich bloss falsch? AWT, Swing, JavaFX & SWT 2
N Swing Frage zu modalem JDialog. AWT, Swing, JavaFX & SWT 16

Ähnliche Java Themen

Neue Themen


Oben