2017-02-23 115 views
0

在java fx中是否有这样的FloatField。我需要能够编写和编辑浮动。所以我用字符串测试了它。但setCellProperty不支持浮子FloatField(TextField for javafx中的浮点数)?

TableColumn<Dish, Float> costCol = new TableColumn<>("Price"); 
costCol.setCellValueFactory(new PropertyValueFactory<Dish, Float>("cost")); 


costCol.setCellFactory(TextFieldTableCell.<Dish>forTableColumn()); 
+0

为什么不只是使用字符串文本字段,并检查用户输入可以解析为一个浮动之前做任何事情呢? – nhouser9

回答

1

通用型为TextFieldTableCell.forTableColumn()方法(在这种情况下Float)的列类型,不表型。

costCol.setCellFactory(TextFieldTableCell.forTableColumn(new FloatStringConverter())); 

(在Java 8中,编译器会推断正确通用:

假设你Dish类有一个costProperty()方法返回合适的类型,如果你提供一个转换器将forTableColumn方法你的代码将工作键入上面的代码;如果你想明确你会做TextFieldTableCell<Float>.forTableColumn(...))。