将 Label 的文本属性(在 FXML 文件中)绑定到 Integer 属性(在控制器中)
我已经在FXML文件中的标签和关联控制器中的整数属性之间设置了数据绑定。问题在于,虽然标签在初始化时设置为正确的值,但当属性的值更改时,它不会更新。
FXML 文件
<?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>
控制器
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());
}
}
期望
每次我按下“减去1”按钮时,计数器将递减1,计数器标签将自动更新。
现实
计数器递减 1,但计数器标签仍停留在 15(初始值)。
问题
我的印象是(例如,从这个论坛帖子中),我所做的应该有效。我错过了什么?