JavaFX Wechselnde Werte in Label darstellen

Augenblau

Mitglied
Hallo zusammen,

ich bin noch relativ unerfahren mit JavaFX und probier mich hier noch ein bisschen aus.
Nun zu meiner Frage:
Wie schaffe ich es dass sich der Wert in einem Label ständig dem neuen Wert einer Property anpasst.

Hier der Code der Main
Java:
package testApp;
 
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.fxml.FXMLLoader;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            FXMLLoader loader = new FXMLLoader();
            loader.setLocation(getClass().getResource("FXTest.fxml"));
            AnchorPane root = (AnchorPane) loader.load();
            Scene scene = new Scene(root);
            //scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
         
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
        launch(args);
    }
}

hier der Code des Controllers:

Code:
package testApp;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;

public class FXTestController implements Initializable {
 
    StringProperty stringProperty = new SimpleStringProperty("Connected");
 
    @FXML
    private Label label;
 
    @FXML
    private Button button;
 
    public void start(ActionEvent e) {
        for (int i = 0; i < 10000; i++) {
            stringProperty.setValue("" + i);
        }
    }

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        label.textProperty().bind(stringProperty);
    }
}

und hier der der FXML Datei:

XML:
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>


<AnchorPane xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="testApp.FXTestController">
   <children>
      <BorderPane prefHeight="200.0" prefWidth="200.0">
         <center>
            <Label fx:id="label" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="20.0" prefWidth="200.0" text="Label" textAlignment="CENTER" BorderPane.alignment="CENTER">
               <BorderPane.margin>
                  <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
               </BorderPane.margin>
               <padding>
                  <Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
               </padding>
            </Label>
         </center>
         <bottom>
            <Button fx:id="button" mnemonicParsing="false" onAction="#start" text="Button" BorderPane.alignment="CENTER" />
         </bottom>
      </BorderPane>
   </children>
</AnchorPane>

Mein Problem ist das jeweil nur der letzte Wert angezeit wid.

MfG T.Schwenk
 
Zuletzt bearbeitet von einem Moderator:

Gucky

Top Contributor
Warum hast du versucht [NOPARSE][NOPARSE]...[/NOPARSE][/NOPARSE] zu verwenden?
Code bitte in Java-Tags, sonst kann sich das keiner durchlesen.

Momentan scheinen BB-Tags aber nicht zu funktionieren.

EDIT:
Jetzt muss [c ode=Java] code [/ code] ohne Leerzeichen verwendet werden.
 

Tom299

Bekanntes Mitglied
Doch, das funktioniert, allerdings zählt dein PC schnell bis 10000, außerdem blockt deine Schleife den UI-Thread.

Bau mal einen sleep ein, dann siehst du, wann dein Label aktualisiert wird, nämlich nur 1x am Ende der Schleife. Wenn du es in einen Thread auslagerst, kannst du die Schritte sehen.
Code:
            try {
                Thread.sleep(1000);
            }
            catch (InterruptedException e) {
                e.printStackTrace();
            }
 

Augenblau

Mitglied
Hallo Tom299,

erst mal Vielen Dank für Deine schnelle Antwort. Hab versucht es umzusetzen. Hab verschiedene Strukturen versucht aber ich bekomm immer eine Exception wenn ich die Schleife starte. Hier mein letzter Versuch:
Java:
package testApp;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;

public class FXTestController implements Initializable {
   
    private String message;
    StringProperty stringProperty = new SimpleStringProperty("Connected");
   
    @FXML
    private Label label;
   
    @FXML
    private Button button;
   
    public void start(ActionEvent e) {
        Thread t = new Thread(new Message());
        t.start();
    }
   
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        label.textProperty().bind(stringProperty);
    }
   
    private class Message implements Runnable {
       
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                stringProperty.setValue("" + i);
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
               
            }
        }
       
    }
}

Was mache ich denn falsch?
 

Tom299

Bekanntes Mitglied
du mußt die stringProperty im UI-Thread setzen, also z.B. so in etwa:

Java:
        Platform.runLater(new Runnable() {
            @Override
            public void run() {
                stringProperty.setValue("" + i);
            }
        });

Und i machste dann als Klassenvariable in die Message-Klasse, damit es geht.
 

Augenblau

Mitglied
Hier nochmal der fertige Code falls es sonst noch jemand nachvollziehen möchte:

Java:
package testApp;

import java.net.URL;
import java.util.ResourceBundle;
import javafx.application.Platform;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.Label;

public class FXTestController implements Initializable {
   
    private String message;
    StringProperty stringProperty = new SimpleStringProperty("Connected");
   
    @FXML
    private Label label;
   
    @FXML
    private Button button;
   
    public void start(ActionEvent e) {
        Thread t = new Thread(new Message());
        t.start();
    }
   
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        label.textProperty().bind(stringProperty);
    }
   
    private class Message implements Runnable {
       
        int i;
       
        @Override
        public void run() {
            for (i = 0; i < 5; i++) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Platform.runLater(new Runnable() {
                    @Override
                    public void run() {
                        stringProperty.setValue("" + i);
                    }
                });
               
            }
        }
       
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z JavaFX Pane für wechselnde Sub-Panes mit Auto-Resize AWT, Swing, JavaFX & SWT 2
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
D ObservableList Werte hinzufügen AWT, Swing, JavaFX & SWT 7
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
P Adressbuch Werte speichern AWT, Swing, JavaFX & SWT 21
Blender3D Falsche Werte mit Java Toolkit Screensize AWT, Swing, JavaFX & SWT 4
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
emma_louisa JavaFX Werte beim Aufrufen des Fensters übernehmen (SceneBuilder) AWT, Swing, JavaFX & SWT 3
Arif Swing MouseMotionListener liefert falsche Werte ? AWT, Swing, JavaFX & SWT 7
G Werte aus dem GUI Auslesen AWT, Swing, JavaFX & SWT 8
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
B JavaFX Werte aus eingefügtem Window lesen AWT, Swing, JavaFX & SWT 0
M Swing JFreechart zoom x-achse neue Werte AWT, Swing, JavaFX & SWT 4
P Swing JTable Werte auslesen bzw überschreiben AWT, Swing, JavaFX & SWT 5
L JTable Werte mulitiplizieren AWT, Swing, JavaFX & SWT 3
R AWT Werte aus NumberField vergleichen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.widgets.Slider und negative Werte AWT, Swing, JavaFX & SWT 3
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
N Input/Output Stream werte in Label anzeigen. AWT, Swing, JavaFX & SWT 6
F JavaFX Properties und NULL Werte AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
A Swing Bestimmte Werte anzeigen JSlider() AWT, Swing, JavaFX & SWT 2
T label überschriebt seine werte-SWT AWT, Swing, JavaFX & SWT 3
E werte zurück in GUI schreiben AWT, Swing, JavaFX & SWT 4
S JTable - 2D ArrayList & Falsche Werte. AWT, Swing, JavaFX & SWT 3
E werte aus List auslesen AWT, Swing, JavaFX & SWT 2
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
E Listener, werte in andere Klasse übernehmen AWT, Swing, JavaFX & SWT 11
K JTable Werte auslesen AWT, Swing, JavaFX & SWT 2
K JComboBox: Beim Einfügen neuer Werte ItemStateChanged blocken. AWT, Swing, JavaFX & SWT 2
Z Swing Mittels GUI Werte aus Property-File ändern AWT, Swing, JavaFX & SWT 5
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
P 2D-Grafik PaintComponent() übernimmt keine Werte aus update() AWT, Swing, JavaFX & SWT 8
B Die Werte von getLocation() im Label anzeigen AWT, Swing, JavaFX & SWT 4
J Swing jSlider nur auf bestimmte werte beschränken AWT, Swing, JavaFX & SWT 15
J JDialog verliert Werte AWT, Swing, JavaFX & SWT 3
T JTextField nur Double werte eingeben AWT, Swing, JavaFX & SWT 2
D Swing JTable Werte AWT, Swing, JavaFX & SWT 2
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
F Swing JList doppelte werte AWT, Swing, JavaFX & SWT 3
A Swing JFrame Werte aus JDialog übergeben AWT, Swing, JavaFX & SWT 4
E Jtable Werte ohne Enter übernehmen AWT, Swing, JavaFX & SWT 9
F JComboBox gibt falsche werte AWT, Swing, JavaFX & SWT 3
P getMousePosition(): andere Werte als erwartet AWT, Swing, JavaFX & SWT 4
D Comboboxen werte Falsch. AWT, Swing, JavaFX & SWT 2
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
M Comboboxen in JTable - Werte auslesen AWT, Swing, JavaFX & SWT 9
calzone Swing JTable, Werte aktualisieren klappt nicht! AWT, Swing, JavaFX & SWT 7
R Swing JTable, werte speichern und laden AWT, Swing, JavaFX & SWT 25
G Alle Werte einer Spalte in JTable zusammenrechnen AWT, Swing, JavaFX & SWT 2
S JTable Werte werden nicht übernommen AWT, Swing, JavaFX & SWT 2
C Werte aus der Tabelle lesen AWT, Swing, JavaFX & SWT 4
K JSpinner - Model <-> View, unterschiedliche Werte AWT, Swing, JavaFX & SWT 9
A Werte in ein Textfeld übernehmen AWT, Swing, JavaFX & SWT 4
L JTextField Umwandeln in double-Werte AWT, Swing, JavaFX & SWT 5
P Bei Buttons Werte übergeben AWT, Swing, JavaFX & SWT 2
G eingegebene Werte einer JTable prüfen? Bitte helfen AWT, Swing, JavaFX & SWT 5
G Werte in Koordinatensystem zeichnen AWT, Swing, JavaFX & SWT 11
G ComboBox Werte auslesen uns setzen AWT, Swing, JavaFX & SWT 6
M JFormattedTextField und Null-Werte AWT, Swing, JavaFX & SWT 4
loadbrain auslesen der Werte dynamischer Textfields AWT, Swing, JavaFX & SWT 21
T JTextField, der nur Werte zwischen 100 und 1000 zulässt AWT, Swing, JavaFX & SWT 28
M Ich habe Werte und Brauche Grafik! AWT, Swing, JavaFX & SWT 3
P Double-Werte sortieren mit TableRowSorter AWT, Swing, JavaFX & SWT 2
L Farbregler - Werte als Zahl ausgeben - Color AWT, Swing, JavaFX & SWT 5
K JTree: Werte in Blätter speichern? AWT, Swing, JavaFX & SWT 8
K JSpinner Werte verschwinden bei Panel Wechsel AWT, Swing, JavaFX & SWT 2
raptorrs J2D paintComponent: Nur ganzzahlige (-int) Werte möglich? AWT, Swing, JavaFX & SWT 3
P JDialog Werte auslesen AWT, Swing, JavaFX & SWT 2
V Werte mehreren Checkboxes zuweisen AWT, Swing, JavaFX & SWT 3
V Werte aus TextField in eine andere Klasse? AWT, Swing, JavaFX & SWT 2
T Werte aus JTable auslesen AWT, Swing, JavaFX & SWT 10
B Eingabefelder nur für bestimmte Werte AWT, Swing, JavaFX & SWT 8
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
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
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
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
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
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

Ähnliche Java Themen

Neue Themen


Oben