ControlsFX Textfields.bindAutoCompletion は新しいパラメータで更新されません。解決策または回避策はありますか?

ControlsFX Textfields.bindAutoCompletion は新しいパラメータで更新されません。解決策または回避策はありますか?

私はこの特定の問題を調査するのに数日を費やし、'.dispose()' など、うまくいくかもしれないと思ったもののうまくいかなかった多くの提案された解決策を試しましたが、私が見つけた限りではこの問題に具体的に対処するものはありませんでした。私は、'スーパーユーザー' がこの問題または同様の問題を経験した可能性があると考えました。この問題の詳細を記載した問題を Git-Hub に投稿しました。これは、suggestionProvider パラメータのバグだと考えられており、自動補完ボックスが更新されたリストで更新されないというものです。FXExperience のこの ControlFX を使用するアプリケーションはデータベースを切り替えるため、結果として得られる JavaFX ComboBox は各データベースに固有の新しいパラメータ リストで更新され、Textfields.bindAutoCompletion メソッドにも渡されます。さらに、データベースが切り替えられるたびに、suggestionProvider の欠陥により、新しいリストが古いリストにも追加されます。

しばらく確認が取れなかったため、以下に詳細を再作成しました。必要に応じて、ここで問題を確認できます。https://github.com/controlsfx/controlsfx/issues/1126

ComboBoxとBindAutoCompletionを更新する前: これは、更新前のComboBoxとAutoCompleteのデータです。 ComboBox と BindAuto Completion を更新する前に

コンボが NULL に設定されました: トピックのコンボボックスが NULL にリセットされました コンボをNullに設定

ControlFX bindAutoComplete に Null 値のみを渡す: bindAutoCompletion メソッドに新しい値を渡す ControlFX bindAutoComplete に Null 値のみを渡す

コンボボックスに項目がありません: コンボボックスのドロップダウンには渡された null 値の項目のみが表示されます コンボボックスに項目がありません

ControlsFX_bindAutoComplete は古いリストを保持します: コントロール bindAutoCompletion は、更新されたパラメータが渡されたにもかかわらず、古い項目のリストを保持し続けます。 ControlsFX_bindAutoComplete は古いリストを保持します

答え1

この問題を解決することができました。この投稿を削除するのではなく、次の人のために何かあったら便利だと思いました。解決策は非常に簡単でした。。廃棄()メソッドが機能しませんでした。これは、提案された AutoCompletionBinding 宣言が間違っていたためです。.dispose() メソッドは起動しますが、エラーは発生しなかったため、別の原因だと思いました。修正方法は次のとおりです。

次のようにします (型宣言なし):

AutoCompletionBinding auto = TextFields.bindAutoCompletion(myField, myList);

こんなことしないで:

AutoCompletionBinding<String> auto = TextFields.bindAutoCompletion(myField, myList);

この宣言を行った後、更新されたデータで TextField または ComboBox を再初期化する前に、.dispose() メソッドを呼び出すだけです。

auto.dispose();

関連情報