使用FX对象的JavaFX TableView
我试图在我的使用FX对象的JavaFX TableView,java,uitableview,user-interface,javafx,tableview,Java,Uitableview,User Interface,Javafx,Tableview,我试图在我的TableView中放置一个堆栈面板,但不断出现错误 我怀疑这是因为我对创建细胞价值工厂缺乏了解 我的代码如下所示: TableColumn obj = new TableColumn("Func " + i); final int index = i; obj.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>
TableView
中放置一个堆栈面板,但不断出现错误
我怀疑这是因为我对创建细胞价值工厂缺乏了解
我的代码如下所示:
TableColumn obj = new TableColumn("Func " + i);
final int index = i;
obj.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList<String>, String>, TableCell<ObservableList<String>, String>>() {
@Override
public TableCell<ObservableList<String>, String> call(final CellDataFeatures<ObservableList<String>, String> cdf) {
if (index + 2 >= cdf.getValue().size()) {
return null;
}
//return new SimpleStringProperty(cdf.getValue().get(index + 2));
return new TableCell<ObservableList<String>, String>(){
Label funcLbl = new Label(cdf.getValue().get(index+2));
StackPane sp = new StackPane();
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty); //To change body of generated methods, choose Tools | Templates.
sp.getChildren().add(funcLbl);
setGraphic(sp);
}
};
}
});
obj.setMinWidth(100);
this.getColumns().add(obj);
我正在尝试从使用
public ObservableValue<String> call(CellDataFeatures<ObservableList<String>, String> cdf)
公共observeValue调用(CellDataFeatures cdf)
并且仅返回SimpleStringProperty
以返回一个StackPane
作为其内容的表格单元格,其字符串保存在标签中(我想基于单击堆栈窗格创建操作)
任何关于理解过渡的帮助都将是巨大的 CellValueFactory用于从模型对象填充列单元格中的数据
例如:
lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));
lastNameCol.setCellValueFactory(新的PropertyValueFactory(“lastName”);
如果要在表列的所有单元格中呈现数据,则必须使用cellFactory我在回答中也做了类似的操作
lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));