Comment supprimer un JavaFx TableView Ligne

J'ai un JavaFx TableView avec chaque Rangée, une colonne avec un bouton supprimer qui, lorsqu'il clique sur supprimer la TableRow, ainsi que les entrées correspondantes dans la H2 de la base de données via Hibernate.

Jusqu'à présent, je ne suis pas d'obtenir quoi que ce soit. Il ne se passe rien sur le bouton cliquez sur. Non, même si je attribuer manuellement un élément Clé Primaire de la sorte:

NewBeautifulKiwi toDelete = (NewBeautifulKiwi) session.get(NewBeautifulKiwi.class, 97);

Merci de m'aider à faire ce travail; cliquez sur le bouton pour supprimer le TableRow il appartient ainsi que la Base de données des éléments de remplissage qui particulier TableRow. Jusqu'à présent il ne se passe rien du tout sur ButtonClick.

Vous en remercie d'avance.

Ps.

Les boutons aussi être imprimé où les colonnes sont vides. Il serait également utile si vous m'avez aidé à résoudre ce et seulement les Boutons sur les Lignes avec des données

La Classe Extrait:

public class HomeController implements Initializable {
@FXML
public static TableView<NewBeautifulKiwi> KIWI_TABLE;
@FXML
private TableColumn<NewBeautifulKiwi, Object> KiwiAction;
//Initializes the controller class.
@Override
public void initialize(URL url, ResourceBundle rb) {
KiwiAction.setCellValueFactory(new PropertyValueFactory<NewBeautifulKiwi, Object>("KiwiAction"));
KiwiAction.setCellFactory(new Callback<TableColumn<NewBeautifulKiwi, Object>, TableCell<NewBeautifulKiwi, Object>>() {
@Override
public TableCell<NewBeautifulKiwi, Object> call(TableColumn<NewBeautifulKiwi, Object> param) {
final Button button;
Image image = new Image(getClass().getResourceAsStream("/MediaTools/Error.png"));
final ImageView imageView = new ImageView();
imageView.setFitHeight(16);
imageView.setFitWidth(16);
imageView.setImage(image);
button = new Button("", imageView);
final TableCell<NewBeautifulKiwi, Object> cell = new TableCell<NewBeautifulKiwi, Object>() {
@Override
public void updateItem(Object item, boolean empty) {
if (item != null) {
super.updateItem(item, empty);
final VBox vbox = new VBox(0);
button.setAlignment(Pos.CENTER);
button.maxWidth(32);
button.getStyleClass().add("deleteButton");
final TableCell<NewBeautifulKiwi, Object> c = this;
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
TableRow tableRow = c.getTableRow();
NewBeautifulKiwi item = (NewBeautifulKiwi) tableRow.getTableView().getItems().get(tableRow.getIndex());
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
NewBeautifulKiwi toDelete = (NewBeautifulKiwi) session.get(NewBeautifulKiwi.class, item);
session.delete(toDelete);
session.getTransaction().commit();
session.flush();
session.close();
System.out.println("Deleted");
}
});
vbox.getChildren().add(button);
setGraphic(vbox);
}
}
};
cell.setGraphic(button);
return cell;
}
});
});
Kiwi.setCellValueFactory(new PropertyValueFactory<NewBeautifulKiwi, String>("Kiwi"));
}

OriginalL'auteur ILikeProgramming | 2014-03-22