java fx中是否有FloatField之类的东西。我需要能够编写和编辑浮点数。因此,我使用字符串对其进行了测试。但是setCellProperty不支持浮点数

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


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

最佳答案

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

假设您的Dish类具有返回适当类型的costProperty()方法,那么如果您为forTableColumn方法提供转换器,则代码将起作用:

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


(在Java 8中,编译器将在上面的代码中推断正确的泛型类型;如果要明确,则可以执行TextFieldTableCell<Float>.forTableColumn(...)。)

07-26 04:59