Ich erstelle eine benutzerdefinierte CheckBoxTableView, wo die ausgewählten Elemente mit einer CheckBox angezeigt werden. Wenn der Benutzer versucht, die Tabelle zu sortieren, sobald Elemente ausgewählt sind, scheint es zu versauen. Ich möchte den Benutzer auffordern, zu sehen, ob sie fortfahren möchten. Wenn ja, möchte ich die Auswahl löschen, wenn nicht, einfach das Ereignis konsumieren, damit die Sortierung nicht passiert.Abfangen von MouseEvent.MOUSE_CLICKED auf TableView auf JavaFX8
Leider - mein EventFilter scheint zu schießen, nachdem die Sortierung abgeschlossen wurde.
Auf dem Tableview-Konstruktor, legte ich den folgenden Code:
addEventFilter(MouseEvent.MOUSE_CLICKED, event -> {
if(event.getTarget() instanceof TableColumnHeader) {
Alert a = new Alert(Alert.AlertType.CONFIRMATION);
a.setContextText("you sure?");
Optional<ButtonType> bt = a.showAndWait();
if(bt.isPresent() && bt.get() == ButtonType.OK){
//Clear selection
getSelectionModel().clearSelection();
}else {
event.consume();
}
}
});
Aber von der Zeit meiner Eventfilter Feuer hat die Tabelle sortiert wurde.
Irgendwelche Gedanken?
Ich habe versucht, beide - weder gearbeitet. Jedoch konnte ich SortEvent.ANY verwenden und das löste es. –