在 TableView JavaFx 中显示浮点数的两位小数
display two decimal places of a float in a TableView JavaFx
所以基本上我是在按照 DAO 模式开发这个 Javafx 应用程序...
我希望花车的结尾是 .00 而不是 .0(代表余额.. 金钱)
balance records in tableview with .0
下面是我如何初始化 tableview 组件
idC.setCellValueFactory(cellData -> cellData.getValue().idProperty().asObject());
balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asObject());
dateC.setCellValueFactory(cellData -> cellData.getValue().dateProperty());
timeC.setCellValueFactory(cellData -> cellData.getValue().timeProperty());
使用 cellFactory
除了 你的 cellValueFactory
(我假设 balanceC
对某些人来说是 TableColumn<T, Double>
输入 T
:
balanceC.setCellFactory(c -> new TableCell<>() {
@Override
protected void updateItem(Double balance, boolean empty) {
super.updateItem(balance, empty);
if (balance == null || empty) {
setText(null);
} else {
setText(String.format("%.2f", balance.doubleValue());
}
}
});
如果需要,您可以添加货币符号并使用更复杂的格式。
如果您不想添加更多不必要的代码,则不需要 CellFactory。
首先,将您的 TableColumn<XXX,Double> balanceC
更改为 TableColumn<XXX,String> balanceC
然后将您的单元格值工厂更改为:
balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asString("%.2f"));
IMO 的简单和清洁方式。
就我个人而言,当我需要更复杂的单元格时,我会编写自定义 CellFactory,例如:在单元格内混合图像和其他节点。
所以基本上我是在按照 DAO 模式开发这个 Javafx 应用程序... 我希望花车的结尾是 .00 而不是 .0(代表余额.. 金钱) balance records in tableview with .0
下面是我如何初始化 tableview 组件
idC.setCellValueFactory(cellData -> cellData.getValue().idProperty().asObject());
balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asObject());
dateC.setCellValueFactory(cellData -> cellData.getValue().dateProperty());
timeC.setCellValueFactory(cellData -> cellData.getValue().timeProperty());
使用 cellFactory
除了 你的 cellValueFactory
(我假设 balanceC
对某些人来说是 TableColumn<T, Double>
输入 T
:
balanceC.setCellFactory(c -> new TableCell<>() {
@Override
protected void updateItem(Double balance, boolean empty) {
super.updateItem(balance, empty);
if (balance == null || empty) {
setText(null);
} else {
setText(String.format("%.2f", balance.doubleValue());
}
}
});
如果需要,您可以添加货币符号并使用更复杂的格式。
如果您不想添加更多不必要的代码,则不需要 CellFactory。
首先,将您的 TableColumn<XXX,Double> balanceC
更改为 TableColumn<XXX,String> balanceC
然后将您的单元格值工厂更改为:
balanceC.setCellValueFactory(cellData -> cellData.getValue().balanceProperty().asString("%.2f"));
IMO 的简单和清洁方式。
就我个人而言,当我需要更复杂的单元格时,我会编写自定义 CellFactory,例如:在单元格内混合图像和其他节点。