这是代码:Contoller类:
@FXML private TableView<User> table;
@FXML private TableColumn<User,String> view;
方法(){..... `view.setCellValueFactory( 新的PropertyValueFactory(“DUMMY”));
Callback<TableColumn<User, String>, TableCell<User, String>> cellFactory
= new Callback<TableColumn<User, String>, TableCell<User, String>>() {
public TableCell call( TableColumn<User, String> param) {
final TableCell<User, String> cell = new TableCell<User, String>() {
Button btn = new Button("View");
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (empty) {
setGraphic(null);
setText(null);
} else {
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
User user = getTableView().getItems().get(getIndex());
System.out.println(user.username
+ " " + user.name);
}
});
setGraphic(btn);
setText(null);
}
}
};
return cell;
}
};
view.setCellFactory(cellFactory);
//add observablelist
table.getItems().setAll(datas);
}`
我从这里借了代码:How to add button in JavaFX table view 事实上,我的View列中没有任何视图。 编译器抱怨我不能在jdk 1.7中使用无参数的新PropertyValueFactory&lt;&gt;(“DUMMY”)) 而且为什么我不能将这样的表达式用于按钮列@FXML私有TableColumn视图? 我还应该注意到我用lambda改变了原始代码(可能只是在1.8中)。