Ich versuche, zwei Schaltflächen in einer Spalte in der Tabellenansicht in javafx zu implementieren. Ich bin in der Lage, eine Schaltfläche in einer Spalte zu implementieren, aber nicht in der Lage, zwei Schaltflächen in einer Spalte hinzuzufügen. Ich habe eine Vorstellung von diesem LinkFügen Sie zwei Schaltflächen in einer Spalte hinzu und erhalten Sie den Klickzeilenwert javafx
How to add button in JavaFX table view
Add a button to a cells in a TableView (JAVAFX)
How to add two buttons in a TableColumn of TableView JavaFX
ich die Idee in den obigen Link verwenden. Der Code funktioniert jedoch nicht für mich.
TableColumn<Student, String> firstCol = new TableColumn<Student, String>("ID");
TableColumn<Student, String> secondCol = new TableColumn<Student, String>("Name");
TableColumn<Student, String> thirdCol = new TableColumn<Student, String>("Quiz Mark");
TableColumn<Student, String> forthCol = new TableColumn<Student, String>("A1");
TableColumn<Student, String> fifthCol = new TableColumn<Student, String>("A2");
TableColumn<Student, String> sixthCol = new TableColumn<Student, String>("A3");
TableColumn<Student, String> sevenCol = new TableColumn<Student, String>("Exam");
TableColumn<Student, String> eightCol = new TableColumn<Student, String>("Result");
TableColumn<Student, String> nineCol = new TableColumn<Student, String>("Grade");
TableColumn<Student, Student> tenthCol = new TableColumn<Student, Student>("Action");
firstCol.setCellValueFactory(new PropertyValueFactory<>("Id"));
secondCol.setCellValueFactory(new PropertyValueFactory<>("Name"));
thirdCol.setCellValueFactory(new PropertyValueFactory<>("QuizMark"));
forthCol.setCellValueFactory(new PropertyValueFactory<>("Assingment1Mark"));
fifthCol.setCellValueFactory(new PropertyValueFactory<>("Assingment2Mark"));
sixthCol.setCellValueFactory(new PropertyValueFactory<>("Assingment3Mark"));
sevenCol.setCellValueFactory(new PropertyValueFactory<>("ExamMark"));
eightCol.setCellValueFactory(new PropertyValueFactory<>("Result"));
nineCol.setCellValueFactory(new PropertyValueFactory<>("Grade"));
tenthCol.setCellFactory(param -> new TableCell<Student, Student>() {
private final Button editButton = new Button("edit");
private final Button deleteButton = new Button("delete");
HBox pane = new HBox(deleteButton, editButton);
@Override
protected void updateItem(Student patient, boolean empty) {
super.updateItem(patient, empty);
if (patient == null) {
setGraphic(null);
return;
}
deleteButton.setOnAction(event -> {
Student getPatient = getTableView().getItems().get(getIndex());
System.out.println(getPatient.getId() + " " + getPatient.getName());
});
editButton.setOnAction(event -> {
Student getPatient = getTableView().getItems().get(getIndex());
});
pane.getChildren().addAll(deleteButton,editButton);
setGraphic(pane);
}
});
In, wird die Aktionsspalte Tasten erscheint nicht. Wo mache ich Fehler? Bitte lass es mich wissen.