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(...)
。)