我有一个基于tableview的表,它是由double值填充的,我收到了trougth API,我想在点之后只显示3位数。
答案 0 :(得分:2)
使用StringConverter
获取所需的格式,并使用TextFieldTableCell
这样安装:
threeDigitColumn.setCellFactory(TextFieldTableCell.<RowModel, Double>forTableColumn(new StringConverter<Double>() {
private final NumberFormat nf = NumberFormat.getNumberInstance();
{
nf.setMaximumFractionDigits(3);
nf.setMinimumFractionDigits(3);
}
@Override public String toString(final Double value) {
return nf.format(value);
}
@Override public Double fromString(final String s) {
// Don't need this, unless table is editable, see DoubleStringConverter if needed
return null;
}
}));
答案 1 :(得分:1)
在表格列上使用自定义单元格工厂:
Callback<TableColumn<S, Double>, TableCell<S, Double>> cellFactory = new Callback<TableColumn<S, Double>, TableCell<S, Double>() {
@Override
public TableCell<S, Double> call(TableColumn<S, Double> col) {
return new TableCell<S, Double>() {
@Override
public void updateItem(Double value, boolean empty) {
super.updateItem(value, empty) ;
if (value==null) {
setText(null);
} else {
setText(String.format("%.3f", value.doubleValue()));
}
}
};
}
}
tableCol.setCellFactory(cellFactory);
(用表格的数据类型替换S
。)