【发布时间】:2016-07-19 02:31:55
【问题描述】:
我希望这个 totalSalesAmountProperty 显示该值,但即使在它被更新并且具有实际值之后,它仍然不显示。我知道这有一个价值,因为我 system.out getter 方法并且我得到了一个价值。为什么会这样?
Label lblTotalSales = new Label(String.valueOf(newSale.getTotalSalesAmount1()));
【问题讨论】:
我希望这个 totalSalesAmountProperty 显示该值,但即使在它被更新并且具有实际值之后,它仍然不显示。我知道这有一个价值,因为我 system.out getter 方法并且我得到了一个价值。为什么会这样?
Label lblTotalSales = new Label(String.valueOf(newSale.getTotalSalesAmount1()));
【问题讨论】:
您需要将标签的文本属性绑定到totalSalesAmountProperty:
label.textProperty().bind(totalSalesAmountProperty);
那么标签文本会在 totalSalesAmountProperty 被修改时自动更新。
【讨论】:
试试这个(getTotalSalesAmount1()的返回类型是什么??这里我认为是double)
Label lblTotalSales = new Label(" " + newSale.getTotalSalesAmount1());
【讨论】:
通过使用
Label lblTotalSales = new Label(String.valueOf(newSale.getTotalSalesAmount1()));
您在调用Label 构造函数之前将文本设置为String.valueOf(newSale.getTotalSalesAmount1()) 返回的String,即它产生的结果与
String s = String.valueOf(newSale.getTotalSalesAmount1());
Label lblTotalSales = new Label(s);
Strings 在 java 中既不可变也不可观察,因此文本不会自动更新。
要解决此问题,请将Label 的textProperty 绑定到DoubleProperty 的String 版本。这将向属性添加侦听器,每次DoubleProperty 更改时,该属性都会更新Label 的文本。
DoubleProperty propertyToShow = ...
Label label = new Label();
label.textProperty().bind(propertyToShow.asString());
【讨论】: