布尔值到 TableView JavaFx 中的字符串

Gri*_*ire 3 string boolean javafx tableview

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

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

ecilpse 给我的错误是方法“类型 TableColumn 中的 setCellValueFactory(Callback,ObservableValue>) 不适用于参数 (( 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);
        });
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何帮助谢谢

Jam*_*s_D 5

保持类型为布尔值并使用细胞工厂来改变你的显示方式:

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" );
    }
});
Run Code Online (Sandbox Code Playgroud)