我的目标是什么:
我正在寻找一种在Java中添加(。)大数字的方法。经过研究,我做了以下方法:
/**
* @param number
* @return A number with more than 3 digits [ Example 1000 as 1.000] with dots every 3 digits
*/
public static String getNumberWithDots(int number) {
return String.format(Locale.US, "%,d", number).replace(",", ".");
}
问题:
现在我在JavaFX中有一个Label
。我们将其命名为label
。实际上我想将它的文本绑定到SimpleIntegerProperty
让它命名为totalCats
,但我想格式化文本,以便它实际上符合上述方法。
我的意思是,如果 totalCats 1000 ,我希望标签显示 1.000 。到目前为止,我只实现了 1,000 ,但我不知道如何用(。)替换(,)因为StringBinding
没有替换方法:
label.textProperty().bind(totalCatsProperty().asString(Locale.US, "%,d"));
最后:
感谢任何帮助:)
答案 0 :(得分:2)
Bindings::create****Binding
非常有用。
label.textProperty().bind(Bindings.createStringBinding(
() -> String.format(Locale.US, "%,d", totalCatsProperty().get()).replace(",", "."),
totalCatsProperty()));