javaFX 在标签或微调器中存储数字格式
javaFX Storing number format in label or spinner
我有一个表格视图,在他的一列中我计算了小计:
列"subTotal" = "Qty * price",计算小计后,我计算所有小计的总和。
也许使用:
- 一个标签,那么我如何根据需要从标签中存储和检索总和。
- Spinner,那么如何将总和绑定到 Spinner 的 valueProperty。
这是第一个使用标签的选项:
DoubleBinding doubleBinding = Bindings.createDoubleBinding(() -> tableView.getItems().stream().
collect(Collectors.summingDouble(LineCommand::getSubTotal)), tableView.getItems());
lblTotalHt.textProperty().bind(Bindings.format("%3.2f", doubleBinding));
如何检索存储的金额的问题?
第二个选项:
如何使用微调器执行此操作
fldTotalHt.valueProperty().....Bind(toTheSum);
如果 fldTotalHt
是一个 Spinner
,那么您可以像这样访问它的值 属性
fldTotalHt.getValueFactory().valueProperty().bind(sumProperty)
关于标签。我不太明白,你到底是什么。据我了解,您只是无法获取标签的内容。但这只是 label.getText()
,如果您了解属性和绑定,但对此一无所知,那就很奇怪了。
对于你的第一个问题:"How can I retrieve the stored sum?",你可以从与
的绑定中得到这个
double sum = doubleBinding.getValue();
第二个问题,你可以
Spinner<Double> spinner = new Spinner(min, max, doubleBinding.getValue());
spinner.getValueFactory().valueProperty().bind(doubleBinding.asObject());
(asObject()
有效地将 ObservableValue<Number>
转换为 ObservableValue<Double>
).
但是请注意,绑定微调器的值是毫无意义的。由于显而易见的原因,无法设置绑定值,因此不允许用户更改微调器的值——这意味着它除了标签之外没有更多的功能。真的不清楚 为什么 你会想要在微调器中显示这个值,因为它真的没有任何意义让用户能够更改从其他计算的值值。为什么不直接使用标签?
我有一个表格视图,在他的一列中我计算了小计: 列"subTotal" = "Qty * price",计算小计后,我计算所有小计的总和。 也许使用: - 一个标签,那么我如何根据需要从标签中存储和检索总和。 - Spinner,那么如何将总和绑定到 Spinner 的 valueProperty。
这是第一个使用标签的选项:
DoubleBinding doubleBinding = Bindings.createDoubleBinding(() -> tableView.getItems().stream().
collect(Collectors.summingDouble(LineCommand::getSubTotal)), tableView.getItems());
lblTotalHt.textProperty().bind(Bindings.format("%3.2f", doubleBinding));
如何检索存储的金额的问题?
第二个选项: 如何使用微调器执行此操作
fldTotalHt.valueProperty().....Bind(toTheSum);
如果 fldTotalHt
是一个 Spinner
,那么您可以像这样访问它的值 属性
fldTotalHt.getValueFactory().valueProperty().bind(sumProperty)
关于标签。我不太明白,你到底是什么。据我了解,您只是无法获取标签的内容。但这只是 label.getText()
,如果您了解属性和绑定,但对此一无所知,那就很奇怪了。
对于你的第一个问题:"How can I retrieve the stored sum?",你可以从与
的绑定中得到这个double sum = doubleBinding.getValue();
第二个问题,你可以
Spinner<Double> spinner = new Spinner(min, max, doubleBinding.getValue());
spinner.getValueFactory().valueProperty().bind(doubleBinding.asObject());
(asObject()
有效地将 ObservableValue<Number>
转换为 ObservableValue<Double>
).
但是请注意,绑定微调器的值是毫无意义的。由于显而易见的原因,无法设置绑定值,因此不允许用户更改微调器的值——这意味着它除了标签之外没有更多的功能。真的不清楚 为什么 你会想要在微调器中显示这个值,因为它真的没有任何意义让用户能够更改从其他计算的值值。为什么不直接使用标签?