ControlsFX Textfields.bindAutoCompletion 將不會使用新參數進行更新。有解決方案或解決方法嗎?

ControlsFX Textfields.bindAutoCompletion 將不會使用新參數進行更新。有解決方案或解決方法嗎?

我花了很多天研究這個特定問題,並使用了許多建議的解決方案,例如“.dispose()”,我認為這些解決方案可能有效,但沒有,但我找不到任何具體解決這個問題的方法。我認為“超級用戶”可能遇到過這個問題或類似問題。我在 Git-Hub 上發布了一個問題,其中包含有關此問題的詳細信息,我認為這是 suggestProvider 參數中的錯誤,沒有使用更新的列表更新自動完成框。使用 FXExperience 的 ControlFX 的應用程式在資料庫之間切換,因此產生的 JavaFX ComboBox 使用特定於每個資料庫的新參數清單進行更新,這些參數也傳遞給 Textfields.bindAutoCompletion 方法。此外,每當切換資料庫時,suggestionProvider 中的缺陷也會將新清單新增至舊清單。

我重新創建了下面的詳細信息,因為它已經有一段時間沒有得到確認。https://github.com/controlsfx/controlsfx/issues/1126

Before Updating ComboBox And BindAuto Completion:這是更新先前 ComboBox 和 AutoComplete 中的數據 更新 ComboBox 和 BindAuto Completion 之前

Combo Set To Null:主題 ComboBox 重置為 null 組合設定為空

僅將空值傳遞給 ControlFX bindAutoComplete:將新值傳遞給 bindAutoCompletion 方法 僅將空值傳遞給 ControlFX bindAutoComplete

組合方塊中沒有項目:組合方塊下拉清單僅顯示傳遞的空白值項目 組合框中沒有項目

ControlsFX_bindAutoComplete 保留舊清單:儘管傳遞了更新的參數,但控制項bindAutoComplete 仍保留舊的項目清單。 ControlsFX_bindAutoComplete 保留舊列表

答案1

我能夠解決這個問題。我沒有刪除這篇文章,而是認為為下一個人提供一些東西會很有用。解決方案非常簡單。我無法得到.dispose()工作方法。這是因為提供的建議 AutoCompletionBinding 聲明不正確。 .dispose() 方法會出現,但由於沒有錯誤,我認為這是別的東西。這是修復:

執行此操作(無類型聲明):

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

不要這樣做:

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

做出此聲明後,您只需在使用更新的資料重新初始化 TextField 或 ComboBox 之前呼叫 .dispose() 方法即可。

auto.dispose();

相關內容