Die Bindung einer Eigenschaft text des Labels (in einer FXML-Datei) auf eine IntegerProperty (in einem controller)

Ich habe eine Datenbindung zwischen einem Label in einer FXML-Datei und eine IntegerProperty in den zugehörigen controller. Das problem ist, dass, obwohl das Etikett wird auf den richtigen Wert bei der Initialisierung, es wird nicht aktualisiert, wenn der Wert der Eigenschaft ändert.

FXML-Datei

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

<?import java.net.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<GridPane xmlns:fx="http://javafx.com/fxml"
   fx:controller="application.PaneController" minWidth="200">
   <Label id="counterLabel" text="${controller.counter}" />
   <Button translateX="50" text="Subtract 1"
      onAction="#handleStartButtonAction" />
</GridPane>

Controller

package application;

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

import javafx.beans.binding.Bindings;
import javafx.beans.property.*;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;

public class PaneController implements Initializable
{
    private IntegerProperty counter;

    public int getCounter()
    {
        return counter.get();
    }

    public void setCounter(int value)
    {
        counter.set(value);
    }

    public PaneController()
    {
        counter = new SimpleIntegerProperty(15);
    }

    @Override
    public void initialize(URL url, ResourceBundle resources)
    {
    }

    @FXML
    private void handleStartButtonAction(ActionEvent event)
    {
        setCounter(getCounter() - 1);
        System.out.println(getCounter());
    }
}

Erwartung

Jedes mal, wenn ich drücken Sie die "Subtrahieren 1" - Schaltfläche wird der Zähler Dekrementieren um 1, und die counterLabel wird automatisch aktualisiert.

Realität

Den Zähler nicht dekrementiert um 1, aber die counterLabel stecken bleibt bei 15 (der erste Wert).

Frage

Ich war unter dem Eindruck (z.B. aus dieses forum posten), dass das, was ich getan habe, sollte funktionieren. Was bin ich?

InformationsquelleAutor devuxer | 2013-11-06

Schreibe einen Kommentar