JavaFX StringConverter不适用于组合框

JavaFX StringConverter不适用于组合框,java,combobox,javafx-2,Java,Combobox,Javafx 2,我试图在JavaFX中的表中创建一个组合框表单元格。我使用了一个字符串转换器,使得false在表中显示“No”,true在表中显示“Yes”,这是可行的。但是,当我单击单元格进行编辑时,组合框仍然显示“false”和“true”,如下所示: 我正在设置我的表格单元格,如下所示: colPossibleDischarge.setCellValueFactory(new PropertyValueFactory<RoomProperty, Boolean>("discharge"));

我试图在JavaFX中的表中创建一个组合框表单元格。我使用了一个字符串转换器,使得false在表中显示“No”,true在表中显示“Yes”,这是可行的。但是,当我单击单元格进行编辑时,组合框仍然显示“false”和“true”,如下所示:

我正在设置我的表格单元格,如下所示:

colPossibleDischarge.setCellValueFactory(new PropertyValueFactory<RoomProperty, Boolean>("discharge"));
colPossibleDischarge.setCellFactory(new Callback<TableColumn<RoomProperty, Boolean>, TableCell<RoomProperty, Boolean>>() {
    @Override
    public TableCell<RoomProperty, Boolean> call(TableColumn<RoomProperty, Boolean> roomPropertyBooleanTableColumn) {
        return new ComboBoxTableCell<RoomProperty, Boolean>(new YesNoStringConverter(),true,false);
    }
});
public class YesNoStringConverter extends StringConverter<Boolean> {
    @Override
    public String toString(Boolean bool) {
        return (bool?"Yes":"No");
    }

    @Override
    public Boolean fromString(String s) {
        return s.equalsIgnoreCase("yes");
    }
}
colPossibleDischarge.setCellValueFactory(新属性值工厂(“解除”);
colPossibleDischarge.setCellFactory(新回调(){
@凌驾
公共TableCell调用(TableColumn roomPropertyBooleanTableColumn){
返回新的ComboBoxTableCell(新的YesNoStringConverter(),true,false);
}
});
我的字符串转换器如下所示:

colPossibleDischarge.setCellValueFactory(new PropertyValueFactory<RoomProperty, Boolean>("discharge"));
colPossibleDischarge.setCellFactory(new Callback<TableColumn<RoomProperty, Boolean>, TableCell<RoomProperty, Boolean>>() {
    @Override
    public TableCell<RoomProperty, Boolean> call(TableColumn<RoomProperty, Boolean> roomPropertyBooleanTableColumn) {
        return new ComboBoxTableCell<RoomProperty, Boolean>(new YesNoStringConverter(),true,false);
    }
});
public class YesNoStringConverter extends StringConverter<Boolean> {
    @Override
    public String toString(Boolean bool) {
        return (bool?"Yes":"No");
    }

    @Override
    public Boolean fromString(String s) {
        return s.equalsIgnoreCase("yes");
    }
}
公共类YesNoStringConverter扩展StringConverter{
@凌驾
公共字符串到字符串(布尔布尔布尔值){
返回(布尔?“是”:“否”);
}
@凌驾
公共布尔fromString(字符串s){
返回s.equalsIgnoreCase(“是”);
}
}
我做错了什么

我做错了什么

没什么

这是一个,;它在JavaFX8中是固定的。 如果您现在被锁定在JavaFX2.2(JDK7)中,那么解决方法将是滚动您自己的自定义单元格,这有点乏味,但也不太糟糕

此外,我认为在这种情况下,我会考虑使用CabrBox TabeLeCLE,这是一个比组合框更好的用户体验。