我试图在表格 View 中将 boolean 值显示为字符串,所以我想显示男性而不是 true。
老实说,我有点迷茫。我在互联网上找不到任何帮助。
ecilpse 给我的错误是 The method "setCellValueFactory(Callback,ObservableValue>) in the type TableColumn is not applicable for the arguments (( 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);
});
如果有任何帮助,我将不胜感激
最佳答案
保持类型为 boolean 值并使用单元工厂来更改显示方式:
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" );
}
});
关于string - boolean 值到 TableView JavaFx 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36436169/