FX Label text wird nicht richtig angezeigt

zhermann

Mitglied
Wenn ich das Binding für einen einfaches Label richtig verstanden habe, wird bei Änderung des Properties, welches ich an das Label gebunden habe, doch das Label automatisch mit aktualisiert? Warum erscheint dann aber im Label nicht der aktuelle Text?

Hier mal mein Code:
Code:
public class BAGAZLController implements Initializable {


   @FXML AnchorPane content;
   @FXML Label lblStatus;
   
   /*
    * Tabelview definieren aus application.helpers.ImportRecord
    */
   @FXML
   private final TableView<TableRecord> tableData = new TableView<TableRecord>();
   private ObservableList<TableRecord> dataList = FXCollections.observableArrayList();
   
   private ArrayList<File> files;
   private BAGAZL_Helper helper = new BAGAZL_Helper();
   private Object[][] xlsDatas;

   SimpleStringProperty appStatus;

   public BAGAZLController() {
   }

   @Override
   public void initialize(URL location, ResourceBundle resources) {
       createTableData();
       this.setFiles(new ArrayList<File>());

       // Application Status initialisieren und an das Label @FXML lblSatus binden
       appStatus = new SimpleStringProperty();
       lblStatus.textProperty().bind(Bindings.concat("Status: ", appStatus));

       // Initialsatus ausgeben
       appStatus.set("Bereit für Analyse, wählen Sie bitte das Verzeichnis mit den Excel-Files über den Button >Import< aus.");

   }

   @FXML
   public void importXLS() {
       DirectoryChooser dirChooser = new DirectoryChooser();
       File selDirectory = dirChooser.showDialog(null);
       // Verzeichniss einlesen
       ArrayList<File> files = helper.getimpFile(selDirectory);
       if (files == null) return;

       try {
           for (File file : files) {
               
               // Applicationstatus aus geben, dass Datei XYZ.* analysiert wird
               appStatus.setValue("ananlysiere -> " + file.getCanonicalPath().toString());

               this.xlsDatas = new Object[12][4];
               if (!file.getCanonicalPath().toString().contains("Ruf")) {
                   if (!file.getCanonicalPath().toString().contains("$")) {
                       XLS_Helper xlsHelper = new XLS_Helper(file);
                       this.xlsDatas = xlsHelper.getXLSData();
                       if (this.xlsDatas != null) {
                       ..........

Wenn das Programm startet, wird noch korrekt im Label

Status: Bereit für Analyse, wählen Sie bitte das Verzeichnis mit den Excel-Files über den Button >Import< aus.

angezeigt! In der Routine importXLS soll nun per

Code:
               // Applicationstatus aus geben, dass Datei XYZ.* analysiert wird
               appStatus.setValue("ananlysiere -> " + file.getCanonicalPath().toString());

der Status pro Datei geändert werden.
Es bleibt aber der erste Text "Status: Bereit für Analyse, wählen..." stehen, und nach Abschluß der Analyse, zeigt er mir die den Status für die letzte Datei an.

Wenn ich einen Listener, zum Testen, auf lblStatus registriere z.B. so

Code:
       lblStatus.textProperty().addListener(new ChangeListener<String>() {
            @Override
            public void changed(ObservableValue<? extends String> ov, String oldValue, String newValue) {
               System.out.println("Label Text Changed (old: " + oldValue + " new: " + newValue);
            }
        })
wird mir in der Console alles richtig angezeigt.

Hab ich was übersehen/falsch verstanden?
 

mrBrown

Super-Moderator
Mitarbeiter
Vermutlich blockiert deine Analyse den FX-Thread verhindert damit das updaten.

Deine Analyse sollte in einem extra Thread-laufen
 

zhermann

Mitglied
Danke für den Tipp. Werde mal die Analyse ausklommentieren, mal sehen ob er es dann macht.
Dann sind wir aber an einem Thema, wo ich mich noch nicht .... :confused::rolleyes::D
Gäbe es eine andere Möglichkeit als zweiter Thread?
 

zhermann

Mitglied
OK, das verstehe ich.

Also habe mal die Analyse auskommentiert

Code:
       try {
           for (File file : files) {
               
               // Applicationstatus aus geben, dass Datei XYZ.* analysiert wird
               appStatus.setValue("ananlysiere -> " + file.getCanonicalPath().toString());

               this.xlsDatas = new Object[12][4];
               if (!file.getCanonicalPath().toString().contains("Ruf")) {
                   if (!file.getCanonicalPath().toString().contains("$")) {
/*
                       XLS_Helper xlsHelper = new XLS_Helper(file);
                       this.xlsDatas = xlsHelper.getXLSData();
                       if (this.xlsDatas != null) {
                           TableRecord record = new TableRecord(xlsDatas[0][0].toString(), "Vormonat:",

                          ........

                           dataList.addAll(record, record1, record2);
                       }
*/                       
                   }
               }
           }
       } catch (IOException e) {
           e.printStackTrace();
       }

trotzdem macht er es nicht. Jetzt hat er doch eigentlich nix mehr zu tun, als den Status zu aktualisieren?
 

zhermann

Mitglied
Ja, aber nur für die letzte Datei. Eigentlich sollte er es für jede Datei machen, immer dann wenn er die zu analysierende Datei wechselt. So das der User sieht, welche Datei gerade bearbeitet wird.
 

sascha-sphw

Top Contributor
Vielleicht habe ich auch irgendwas verpasst, aber solange kein separater Thread gestartet wird, wird sich die GUI immer erst nach dem abarbeiten der for schleife aktualisieren.
 

mrBrown

Super-Moderator
Mitarbeiter

dzim

Top Contributor
Nicht zu vergessen, dass die GUI im schlimmsten Fall "einschläft" - dann kommt noch diese "Dieses Fenster reagiert nicht mehr"-Meldung (Systemabhängig, schon klar)... Nie auf dem GUI-Thread was machen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
B Label mit setText geschriebener Text wird nicht angezeigt AWT, Swing, JavaFX & SWT 9
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
C Label Hintergrundbild mit Text AWT, Swing, JavaFX & SWT 6
A SWT - Farbe von Text auf Label ändern AWT, Swing, JavaFX & SWT 2
hdi SWT Label Text vertikal zentrieren AWT, Swing, JavaFX & SWT 6
M Label übernimmt Text von JDialog nicht. AWT, Swing, JavaFX & SWT 9
K HTML-Text in einem Label anzeigen AWT, Swing, JavaFX & SWT 8
izoards Ausdruck auf Label Drucker AWT, Swing, JavaFX & SWT 1
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
Jose05 Javafx Label Höhe=Breite AWT, Swing, JavaFX & SWT 1
N javafx Position der Bustaben finden label AWT, Swing, JavaFX & SWT 1
N Label Schriftart Ändern javafx AWT, Swing, JavaFX & SWT 2
D JavaFX Label flackert beim aktualisieren AWT, Swing, JavaFX & SWT 12
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
I BoxLayout zentriert Label nicht AWT, Swing, JavaFX & SWT 7
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
R JavaFX Label oder Imageview anzeigen mit Buttonklick AWT, Swing, JavaFX & SWT 4
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
A Inhalt wechseln bei Klick auf Label AWT, Swing, JavaFX & SWT 8
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
Trèfle JavaFX Formattierung im Label AWT, Swing, JavaFX & SWT 3
F Countdown in Label anzeigen AWT, Swing, JavaFX & SWT 14
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
J Dateiname im Label einblenden AWT, Swing, JavaFX & SWT 4
C SWT autosize bei gc.drawString() auf einem Label AWT, Swing, JavaFX & SWT 7
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
T JavaFX Label mit mehreren Images AWT, Swing, JavaFX & SWT 11
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
L JavaFX ContextMenu bei Label mit Linksklick AWT, Swing, JavaFX & SWT 4
J JavaFX - Felder (Label) in einer ForSchleife bearbeiten AWT, Swing, JavaFX & SWT 4
N Anordnung der Label AWT, Swing, JavaFX & SWT 3
N Swing Label auf Panel legen.. AWT, Swing, JavaFX & SWT 2
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
R Swing JLabel berührung an einem anderen Label prüfen AWT, Swing, JavaFX & SWT 3
U Java FX Zusätzliches Label per Knopfdruck während der Laufzeit auf Panel einfügen. AWT, Swing, JavaFX & SWT 2
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
T CSS Rechtsbüdniges Label mit Zwei Zeilen AWT, Swing, JavaFX & SWT 7
C Textfeld und Label werden nicht angezeigt (Ubuntu) AWT, Swing, JavaFX & SWT 2
C SWT Treeview mit Bilder im Label verändert Expanded Icon AWT, Swing, JavaFX & SWT 1
Augenblau JavaFX Wechselnde Werte in Label darstellen AWT, Swing, JavaFX & SWT 7
V Swing Brauche Hilfe mit Label AWT, Swing, JavaFX & SWT 3
S JButton-Label vergrößern AWT, Swing, JavaFX & SWT 2
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
M label mit icon verschieben. AWT, Swing, JavaFX & SWT 1
B Swing JXMapKit Mausemove in Label anzeigen AWT, Swing, JavaFX & SWT 0
K Bild in Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S JButton u. Label auf paint-Methode AWT, Swing, JavaFX & SWT 1
G Label wird nicht erstellt AWT, Swing, JavaFX & SWT 0
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
W JavaFX Label in Controller-Klasse in einer anderen Controller-Klasse ändern AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
G Label erstellen AWT, Swing, JavaFX & SWT 6
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
F JavaFX label.getWidth() AWT, Swing, JavaFX & SWT 2
T Swing Label aus anderer Methode bearbeiten AWT, Swing, JavaFX & SWT 2
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
R JavaFX Label ändern in aufgerufener AnchorPane AWT, Swing, JavaFX & SWT 3
B Swing label.setText() macht probleme AWT, Swing, JavaFX & SWT 5
G JavaFX CSS: Label in GridPane rechts ausrichten AWT, Swing, JavaFX & SWT 9
T Swing Aktuelle Größe eines Textes in einem Label darstellen AWT, Swing, JavaFX & SWT 3
KrokoDiehl Swing Buchstaben im Label anders färben AWT, Swing, JavaFX & SWT 4
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
P Label rotieren mit Timer AWT, Swing, JavaFX & SWT 5
C Label wird nicht an der richtigen Position angezeigt.. AWT, Swing, JavaFX & SWT 7
H Label mit Icon positionieren AWT, Swing, JavaFX & SWT 14
E Netbeans: Buttons mit Label bzw. Rahmen unterlegen AWT, Swing, JavaFX & SWT 8
J resize - Label bleibt erst schwarz AWT, Swing, JavaFX & SWT 4
T label überschriebt seine werte-SWT AWT, Swing, JavaFX & SWT 3
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
D Label über JScrollPane AWT, Swing, JavaFX & SWT 3
N Label auf Hauptfenster manipulieren AWT, Swing, JavaFX & SWT 2
S VAADIN: Problem mit Label AWT, Swing, JavaFX & SWT 18
P Ausgabe Label AWT, Swing, JavaFX & SWT 6
GUI-Programmer Informations-Panel an Label AWT, Swing, JavaFX & SWT 2
S ImageIcon von Label entfernen AWT, Swing, JavaFX & SWT 9
B Label breite ermitteln vor dem rendern? AWT, Swing, JavaFX & SWT 7
A Bekomme das Label nicht in die Mitte von Reihe AWT, Swing, JavaFX & SWT 7
H SWT Markierbares Label AWT, Swing, JavaFX & SWT 8
A Swing Box Label ausrichten AWT, Swing, JavaFX & SWT 3
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
O Swing Label(bzw. Grafik) verdekt von anderm Label AWT, Swing, JavaFX & SWT 2
A TextField und Label AWT, Swing, JavaFX & SWT 8
L Label dynamisch awt AWT, Swing, JavaFX & SWT 2
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B Die Werte von getLocation() im Label anzeigen AWT, Swing, JavaFX & SWT 4
M gridbaglayout - abstand bei label und field AWT, Swing, JavaFX & SWT 8
T In einem Label scrollen AWT, Swing, JavaFX & SWT 3
Spot84 swt label zeilenumbruch will nicht funktionieren AWT, Swing, JavaFX & SWT 1
L JFreeChar Label für StackedBar AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben