String TableView JavaFx中的布尔值到字符串

String TableView JavaFx中的布尔值到字符串,string,javafx,boolean,tableview,String,Javafx,Boolean,Tableview,我试图在tableview中将布尔值显示为字符串,所以我想显示的不是true,而是male 老实说,我有点迷路了。我在网上找不到任何帮助 ecilpse给我的错误是类型表列中的方法“setCellValueFactory(回调,ObservalEvalue>)不适用于参数((cellData)->{})” 这是我的密码。这可能是错的 TableColumn<Animal, String > genColumn = new TableColumn<>("Male");

我试图在tableview中将布尔值显示为字符串,所以我想显示的不是true,而是male

老实说,我有点迷路了。我在网上找不到任何帮助

ecilpse给我的错误是类型表列中的方法“setCellValueFactory(回调,ObservalEvalue>)不适用于参数((cellData)->{})”

这是我的密码。这可能是错的

TableColumn<Animal, String > genColumn = new TableColumn<>("Male");
        genColumn.setMinWidth(50);
        genColumn.setCellValueFactory(cellData -> {
            boolean gender = cellData.getValue().getGender();
            String genderAsString;
            if(gender == true)
            {
                genderAsString = "Male";
            }
            else
            {
                genderAsString = "Female";
            }

            new ReadOnlyStringWrapper(genderAsString);
        });
TableColumn genColumn=新的TableColumn(“男性”);
genColumn.设置最小宽度(50);
genColumn.setCellValueFactory(cellData->{
布尔性别=cellData.getValue().getGender();
字符串和字符串;
如果(性别==真)
{
genderastring=“男性”;
}
其他的
{
genderastring=“女性”;
}
新的ReadOnlyStringWrapper(genderAsString);
});

如果您能提供任何帮助,我将不胜感激。谢谢

将类型保留为布尔值,并使用单元格工厂更改显示方式:

TableColumn<Animal, Boolean> genColumn = new TableColumn<>("Gender");
genColumn.setCellValueFactory(cellData -> cellData.getValue().genderProperty());
// or cellData -> new SimpleBooleanProperty(cellData.getValue().getGender())
// if your model class doesn't use JavaFX properties

genColumn.setCellFactory(col -> new TableCell<Animal, Boolean>() {
    @Override
    protected void updateItem(Boolean item, boolean empty) {
        super.updateItem(item, empty) ;
        setText(empty ? null : item ? "Male" : "Female" );
    }
});
TableColumn genColumn=新的TableColumn(“性别”);
genColumn.setCellValueFactory(cellData->cellData.getValue().genderProperty());
//或cellData->new SimpleBoleAnProperty(cellData.getValue().getGender())
//如果您的模型类不使用JavaFX属性
genColumn.setCellFactory(col->newtableCell(){
@凌驾
受保护的void updateItem(布尔项,布尔空){
super.updateItem(项,空);
setText(空?空:项目?“男”:“女”);
}
});

我设法让它工作了,只是缺少了return语句

这是密码

TableColumn<Animal, String > genColumn = new TableColumn<>("Gender");
        genColumn.setMinWidth(50);
        genColumn.setCellValueFactory(cellData -> {
            boolean gender = cellData.getValue().getGender();
            String genderAsString;
            if(gender == true)
            {
                genderAsString = "Male";
            }
            else
            {
                genderAsString = "Female";
            }

         return new ReadOnlyStringWrapper(genderAsString);
        });
TableColumn genColumn=新的TableColumn(“性别”);
genColumn.设置最小宽度(50);
genColumn.setCellValueFactory(cellData->{
布尔性别=cellData.getValue().getGender();
字符串和字符串;
如果(性别==真)
{
genderastring=“男性”;
}
其他的
{
genderastring=“女性”;
}
返回新的ReadOnlyStringWrapper(genderAsString);
});