Ich muss eine Schaltfläche in meiner Anwendung deaktivieren, sofern nichts ausgewählt ist oder mehrere Zeilen ausgewählt sind.JavaFX TableView-Auswahl Bindung wird nicht immer ausgelöst - gibt es eine bessere Arbeit?
Ich habe die folgende Bindung (zusätzlichen Code, es zu debuggen, da es nicht funktionierte) .. mir
BooleanBinding singleDocIsntSelected =
Bindings.createBooleanBinding(() -> {
boolean result = documentTable.getSelectionModel().getSelectedItems().size() != 1;
return result;
}, documentTable.getSelectionModel().selectedItemProperty());
Was passiert, ist, dass, wenn ich die erste Zeile auswählen, es feuert, dann, wenn ich STRG + Klicken Sie auf die gleiche Zeile, es wird erneut ausgelöst. Bis jetzt ist alles gut in der Welt. Dann klicke ich auf die selbe Zeile - nichts, oder wenn ich STRG klicke Andere Zeilen nichts.
Meine Taste bleibt im falschen Zustand.
Wenn ich aber auch ein Zuhörer auf die Eigenschaft hinzufügen:
ChangeListener<MyDTO> selectedItemsListener = (obs, ov, nv) -> {
boolean result = table.getSelectionModel().getSelectedItems().size() != 1;
System.err.println(result);
};
Dann funktioniert alles einwandfrei.
Gibt es keinen anderen Weg, damit umzugehen?
Ich habe das versucht - das gleiche Problem. –