Cell factory in javafx

前端 未结 2 844
别跟我提以往
别跟我提以往 2020-12-08 23:14

I am using JavaFx 2.0 and Java 7. The question is regarding Table View in JavaFX.

The below sample code creates a firstName column and assigns cell factory and cell

2条回答
  •  死守一世寂寞
    2020-12-09 00:03

    Straightforwardly,

    Cell Value Factory : it is like a "toString()" of only part of the row item for that related cell.
    Cell Factory : it is a renderer of the cell from the cell item. Default behavior is setText(cell.item.toString()) if the cell item is not a Node, setGraphic((Node)cell.item) otherwise. Set this property if the cell is supposed to support editing OR if you want more graphics (controls) other than default Label.

    So for your scenario, leaving cell factory with default value will be sufficient (2). And here is sample code for (1):

    firstAndLastNameCol.setCellValueFactory(new Callback, ObservableValue>() {
    
        @Override
        public ObservableValue call(TableColumn.CellDataFeatures p) {
            if (p.getValue() != null) {
                return new SimpleStringProperty(p.getValue().getPrefix() + " " + p.getValue().getFirstName() + "," + p.getValue().getLastName());
            } else {
                return new SimpleStringProperty("");
            }
        }
    });
    

提交回复
热议问题