我在JavaFX
中使用tableview显示List<Contact>
.
对于 Controller 的初始化功能, TableView 列绑定(bind)到 List<Contact>
如下:
sprintName.setCellValueFactory(new PropertyValueFactory<Contact, String>("name"));
importStatus.setCellValueFactory(new PropertyValueFactory<Contact, Boolean>("imported"));
enddate.setCellValueFactory(new PropertyValueFactory<Contact, String>("endDate"));
但是,我想显示列 imported
相反 true/false
文字imported/new
JavaFX
有可能吗?或者我是否必须更改 imported
的类型至String
?
最佳答案
使用单元工厂(除了单元值工厂之外):
importStatus.setCellFactory(tc -> new TableCell<Contact, Boolean>() {
@Override
protected void updateItem(Boolean item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? null :
item.booleanValue() ? "imported" : "new");
}
});
请参阅Cell
class documentation有关单元格渲染机制的一般信息。
关于JavaFX:显示文本而不是 boolean 值(true/false),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090540/