相关疑难解决方法(0)

将Label的文本属性(在FXML文件中)绑定到IntegerProperty(在控制器中)

我已经在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)

java data-binding javafx fxml

12
推荐指数
1
解决办法
2万
查看次数

如何正确使用PropertyValueFactory?

我正在尝试使用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)

java tableview javafx-2

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×2

data-binding ×1

fxml ×1

javafx ×1

javafx-2 ×1

tableview ×1