JavaFXのTableCellのcommitEdit()メソッドが行が表すオブジェクトのプロパティを更新するかどうかは疑問でした。 TableView
documentationからcommitedit()はオブジェクトのプロパティを変更しますか?
答えて
:デフォルト
TableColumn
編集現在ビーイング編集行の アイテムのプロパティ値を上書きしようと デフォルトのハンドラで、ハンドラが非ヌルであるコミット。これはCell.commitEdit(Object)
メソッドが新しい値で渡され、 が実行されたCellEditEvent
によって編集コミットハンドラに渡された であるため、これを行うことができます。この値を取得するには、単にTableColumn.CellEditEvent.getNewValue()
を呼び出してください。それはあなたが
EventHandler
あなた自身でTableColumn.setOnEditCommit(javafx.event.EventHandler)
を呼び出した場合、その後、あなたはデフォルトのハンドラを削除されることに注意してくださいすることが非常に重要です。 プロパティ(または関連するデータ ソース)へのライトバックを処理しない限り、何も起こりません。TableColumnBase.addEventHandler(javafx.event.EventType, javafx.event.EventHandler)
メソッドを使用して、TableColumn.EDIT_COMMIT_EVENT
イベントタイプを追加し、2番目の引数として希望するEventHandler
を追加することで回避できます。この方法を使用すると、 のデフォルト実装が置き換えられることはありませんが、編集コミット が発生したときに通知されます。
デフォルトでは、commitEdit(...)
を呼び出すと、TableColumn
はセルによって表される値を更新しようとします。 TableColumn.setOnEditCommit(...)
を呼び出してイベントハンドラを設定すると、デフォルトの動作が削除されます。
デフォルトのメカニズムは、列のcellValueFactory
によって返されたオブジェクトをWritableValue
にキャストし、そのsetValue()
メソッドを呼び出すことによって機能することにも注意してください。したがって、これは(本質的に)テーブルのバッキングモデルがJavaFX properties patternを使用する場合にのみ機能します。言い換えれば、あなたはあなたのテーブルのためのモデルでxxxProperty()
方法はWritableValue
(例えばProperty
オブジェクト)の実装を返します
column.setCellValueFactory(cellData -> cellData.getValue().xxxProperty());
と同等の何かを持っている必要があります。
- 1. オブジェクトのプロパティを反復処理して変更しますか?
- 2. 別のクラスのオブジェクトのプロパティを変更しますか?
- 3. Emberはオブジェクトのプロパティを変更して動作します
- 4. オブジェクト内のプロパティのDateTime形式を変更しますか?
- 5. Javascript配列オブジェクトのプロパティを変更しますか?
- 6. 実行時にオブジェクトのプロパティを変更しますか?
- 7. Javascriptの変更オブジェクトのプロパティ
- 8. テキストファイルをレンダリングしてオブジェクトのプロパティを変更します
- 9. 'parent'プロパティのプロパティを変更します。
- 10. jqueryオブジェクトの 'name'プロパティを変更する
- 11. オブジェクトのプロパティ名を変更する
- 12. reactJs setStateアレイ内のオブジェクトのプロパティを変更します。
- 13. Queue - C#にあるオブジェクトのプロパティを変更できますか?
- 14. VB.NETで不明なオブジェクトのプロパティを変更します。
- 15. 機能的な方法でオブジェクトのプロパティを変更します
- 16. 変更プロパティ私はこれに似たオブジェクトのプロパティを変更するオブジェクトの代わりに、配列
- 17. 自分のオブジェクト内の関数内のオブジェクトのプロパティを変更します。
- 18. は、配列内のオブジェクトのプロパティを変更できません。
- 19. javascriptの関数内のオブジェクトのキー/プロパティの順序を変更しますか?
- 20. JavaScriptはすべてのオブジェクト参照のプロパティ変更を反映します
- 21. は、オブジェクトのプロパティを更新
- 22. IBOutletのテキストをカスタムクラスから返されたオブジェクトのプロパティに変更します。
- 23. 匿名オブジェクトのプロパティで値を変更する方法はありますか?
- 24. JSONオブジェクトのプロパティ名をXMLに変換する前に変更します
- 25. 変更オブジェクトのプロパティの一部のみ
- 26. オブジェクトのプロパティの名前変更
- 27. オブジェクトとツリーのプロパティの変更
- 28. GameScene.swiftのGameViewController.swiftからオブジェクトのプロパティを変更する
- 29. javascriptを使用してasp.netオブジェクトのプロパティを変更する
- 30. angleJSを使用してオブジェクトのプロパティを変更する方法
ありがとう、私が持っていた問題を解決するのに役立ちました。 – miquel09