JavaFX format double in TableColumn(TableColumn 中的 JavaFX 格式加倍)
问题描述
TableColumn<Product, Double> priceCol = new TableColumn<Product,Double>("Price");
priceCol.setCellValueFactory(new PropertyValueFactory<Product, Double>("price"));
如何将此列中的双精度设置为具有 2 个小数位(因为它们是价格列)?默认情况下它们只显示 1 个小数位.
How do I format the doubles in this column to have 2 decimal places(Because they are the column for price)?By default they only show 1 decimal place.
推荐答案
使用生成单元格的单元格工厂,该单元格使用货币格式化程序来格式化显示的文本.这意味着价格将被格式化为当前语言环境中的货币(即使用当地货币符号和适当的小数位数规则等).
Use a cell factory that generates cells that use a currency formatter to format the text that is displayed. This means the price will be formatted as a currency in the current locale (i.e. using the local currency symbol and appropriate rules for number of decimal places, etc.).
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
priceCol.setCellFactory(tc -> new TableCell<Product, Double>() {
@Override
protected void updateItem(Double price, boolean empty) {
super.updateItem(price, empty);
if (empty) {
setText(null);
} else {
setText(currencyFormat.format(price));
}
}
});
注意这是除了你已经在使用的cellValueFactory
.cellValueFactory
确定单元格中显示的值;cellFactory
确定定义如何显示它的单元格.
Note this is in addition to the cellValueFactory
you are already using. The cellValueFactory
determines the value that is displayed in a cell; the cellFactory
determines the cell that defines how to display it.
这篇关于TableColumn 中的 JavaFX 格式加倍的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:TableColumn 中的 JavaFX 格式加倍
基础教程推荐
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01