Ich frage mich, ob die Methode commitEdit() einer TableCell in JavaFX die Eigenschaft des Objekts, das die Zeile darstellt, aktualisiert.Ändert commitedit() die Eigenschaften seines Objekts?
Antwort
standardmäßig der
TableColumn
bearbeiten begehen Handler ist nicht null, mit einem Standard-Handler, der den Eigenschaftswert für den Element in der zur Zeit Ergehens bearbeitet Zeile zu überschreiben versucht . Es ist in der Lage, dies zu tun, wie dieCell.commitEdit(Object)
Methode in den neuen Wert übergeben wird, und dies ist übergeben an die Bearbeitung Commit-Handler über die , die gefeuert wird. Es ist einfach eine Frage vonTableColumn.CellEditEvent.getNewValue()
, um diesen Wert abzurufen.Es ist sehr wichtig zu beachten, dass, wenn Sie
TableColumn.setOnEditCommit(javafx.event.EventHandler)
mit Ihrem eigenenEventHandler
nennen, dann werden Sie den Standard-Handler zu entfernen. Es sei denn Sie dann das Writeback auf die Eigenschaft (oder die relevanten Daten Quelle) behandeln, wird nichts passieren. Sie können dies umgehen, indem Sie dieTableColumnBase.addEventHandler(javafx.event.EventType, javafx.event.EventHandler)
Methode verwenden, um einTableColumn.EDIT_COMMIT_EVENT
EventType mit Ihrem gewünschtenEventHandler
als zweites Argument hinzuzufügen. Mit dieser Methode ersetzen Sie nicht die Standardimplementierung , aber Sie werden benachrichtigt, wenn ein Bearbeitungs-Commit aufgetreten ist.
So standardmäßig Aufruf commitEdit(...)
Ursache der TableColumn
zu versuchen, den Wert von der Zelle dargestellt zu aktualisieren. Wenn Sie einen Ereignishandler durch Aufrufen von TableColumn.setOnEditCommit(...)
festlegen, entfernen Sie das Standardverhalten.
Beachten Sie auch, dass der Standardmechanismus funktioniert, indem das von der Spalte cellValueFactory
zurückgegebene Objekt in eine WritableValue
umgewandelt und seine Methode setValue()
aufgerufen wird. Dies funktioniert (im Wesentlichen) nur, wenn das Backing-Modell für die Tabelle JavaFX properties pattern verwendet. Mit anderen Worten, sollten Sie etwas Gleichwertiges zu
column.setCellValueFactory(cellData -> cellData.getValue().xxxProperty());
wo die xxxProperty()
Methode im Modell für die Tabelle gibt eine Implementierung von WritableValue
(zum Beispiel eines Property
Objekt) haben.
- 1. Ist die Adresse eines Objekts während seines Lebenszyklus fixiert?
- 2. Tkinter: Hinzufügen des Etiketts ändert die Höhe seines Rahmens
- 3. Sind Elementvariablen wie die Eigenschaften eines Objekts?
- 4. Wie JSonify die Eigenschaften eines Javascript-Objekts
- 5. Rekursiv Eigenschaften und untergeordnete Eigenschaften eines Objekts
- 6. Sortierung der Eigenschaften des Objekts
- 7. unveränderliche Eigenschaften eines Objekts in C#
- 8. Rufen Sie eine JavaScript-Funktion von außerhalb seines Objekts
- 9. Festlegen der Eigenschaften eines Objekts durch Reflektion mit verschiedenen Eigenschaften
- 10. Können Sie über die Eigenschaften eines eloquenten Objekts iterieren?
- 11. Wo sind die Eigenschaften des Deskriptor-Objekts gespeichert?
- 12. Datenbindung an die Eigenschaften eines Objekts, das IEnumerable implementiert
- 13. Überprüfen Sie die Werte eines dynamischen Objekts Eigenschaften
- 14. Wie übertrage ich die Eigenschaften eines anonymen Objekts in C#?
- 15. Wie kann ich auf die Eigenschaften eines anonymen Objekts zugreifen?
- 16. Wie die Eigenschaften eines Prototyps des Objekts iterieren
- 17. Ändern Sie die Eigenschaften eines unbekannten Objekts in VB.NET
- 18. Die Eigenschaften eines Objekts mit einem Array füllen?
- 19. Wie listet man die Eigenschaften eines Objekts in Python auf?
- 20. Ersetze das benannte Objekt durch die Eigenschaften dieses Objekts
- 21. Wie ändert man die Größe eines Divs innerhalb eines Objekts?
- 22. Wie ändert man die Klasse eines Objekts dynamisch in C#?
- 23. Warum ändert sich die Adresse eines Objekts zwischen Methoden?
- 24. Wie rekursiv auflisten durch Eigenschaften des Objekts?
- 25. knockout JS an Eigenschaften des Objekts binden
- 26. Dump alle Eigenschaften eines QObject abgeleiteten Objekts
- 27. So testen Sie mehrere Eigenschaften eines Objekts
- 28. Schloss Windsor Eigenschaften des konstruierten Objekts injizieren
- 29. Anzeige vollständigen Namen aller Eigenschaften eines Objekts
- 30. Filtern eines Objekts nach Eigenschaften in Ramda.js
Danke, es half mir, das Problem zu beheben, das ich hatte. – miquel09