でChangeListenerを追加:理解が、私は次のソースからいくつかのコードを理解しようとしていますテーブルビュー
http://code.makery.ch/library/javafx-8-tutorial/part3/
私はまだ好奇心午前の特定の行には、次のいずれかです。
personTable.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> showPersonDetails(newValue));
私はjavadocの最初の理解が正しくないと信じています。特にこの部分([...].selectedItemProperty().[...]
)に:私たちはいくつかのデータオブジェクトを持っているかもしれませんが、今私の理解には、次のされて、それならば、知っていいだろうしながら、私たちは一つだけリスナーを追加している理由
私は自分自身を求めていました
文書が意味することは、「selectedItem」自体が、実行時に選択/選択変更される行を表すプロパティであるため、リスナーの変更メソッドが次にユーザーが選択した行を変更すると呼び出されます。次に、基礎となるデータモデルとの同期化は、ChangeListener
インタフェースのchange(...)
メソッドを介して行われます。これは、うまくいくデータモデルから対応するデータオブジェクトを取得します。だから私の理解から私はおそらく、私は自分のTableViewで正しいsetItems(...)
をしなかった場合、例外を提起するだろう。
これまでのところ正しいですか?はい、私はフォローアップの質問を持っている場合は
は:ReadOnlyObjectProperty
はObservable
との両方が方法addListener
を持ってObservableValue
両方実装しています。可能であれば、Lambda-Expressionは、addListener(...)
メソッドのいずれかの引数になる可能性のある2つの機能インタフェースの2つのメソッドのパラメータのリストをチェックすることで正しく解決されますか?その点は私にはやや複雑なようだ。
申し訳ありません申し訳ありませんが、返信が遅れており、これを私に明確に説明してくれてありがとうございます。私は明らかに、例外の一部を今までの私のように終わりまでは考えていませんでした。あなたは "アプリケーションプログラマのユーザビリティの観点"と言う。私はこの深みをどの程度深く掘り下げなければならないのか、それがちょうどもっと意味をなさない場所であるのかは分かりません。この時点で、選択と選択の変更が現時点での「表面」の下にどのように引き渡されているかを処理するコードを見ないことは私にとっては普通のことですか? – Wolfone