我想在BigDecimal
应用程序的TableColumn中打印JavaFx
。但我无法正确格式化它。
我试过这个:
DecimalFormat df = new DecimalFormat("#,###.00");
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleStringProperty(df.format(cellData.getValue().getSellAmount()).toString()));
格式正常,打印1 005 689.56。但问题是,当我在我的应用程序中根据此列对表进行排序时,它将这些值称为字符串并且排序不正确。
我做了以下更改:
tc_ma_sell_amount.setCellValueFactory(cellData -> new SimpleObjectProperty<BigDecimal>(cellData.getValue().getSellAmount()));
此处格式不正常。 (1005689.5600),但排序正常。为了获得正确的格式(&#34;#,###。00&#34;)和排序,我需要更改什么?
答案 0 :(得分:3)
我自己做了。
tc_ma_sell_amount.setCellFactory(param -> {
return new TableCell<ConversionDeals, BigDecimal>(){
@Override
protected void updateItem(BigDecimal item, boolean empty) {
super.updateItem(item, empty);
if(empty || item == null){
setText("");
} else {
setText(df.format(item));
}
}
};
});