Вот код: Класс контроллера: @FXML private TableView<User> table;
@FXML private TableColumn<User,String> view;
method() {..... ` view.setCellValueFactory(new 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);
}`
Я позаимствовал код отсюда: Как добавить кнопку в табличное представление JavaFX Действительно, мне нечего делать в моем столбце View. Компилятор жалуется, что я не могу использовать new PropertyValueFactory‹>("DUMMY")) без параметров в jdk 1.7. Кроме того, почему я не могу использовать такое выражение для столбца кнопок @FXML private TableColumn view? Я также должен отметить, что я изменил исходный код с лямбдой (возможно только в 1.8).