我已经在FXML文件中的Label和相关控制器中的IntegerProperty之间建立了数据绑定.问题是,虽然标签在初始化时设置为正确的值,但是当属性的值更改时它不会更新.
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>
Run Code Online (Sandbox Code Playgroud)
调节器
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 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用TableView创建一个表,并根据User对象列表以编程方式填充它.它User有三个变量,nameProperty(String),rankProperty(Enum称为Rank)和netMeritsProperty(int).这些都存储在SimpleStringProperty对象中.我的问题是数据不会出现在实际的表中,如下所示:

这是我的表格代码.我不明白的是什么?
TableColumn<User, String> name = new TableColumn<>("Name");
name.setCellValueFactory(new PropertyValueFactory<User, String>("nameProperty"));
TableColumn<User, String> rank = new TableColumn<>("Rank");
rank.setCellValueFactory(new PropertyValueFactory<User, String>("rankProperty"));
TableColumn<User, String> netMerits = new TableColumn<>("Net Merits");
netMerits.setCellValueFactory(new PropertyValueFactory<User, String>("netMeritsProperty"));
userTable.getColumns().addAll(name, rank, netMerits);
Run Code Online (Sandbox Code Playgroud)