저는 이 특정 문제를 조사하는 데 며칠을 보냈고 '.dispose()'와 같이 작동할 수 있다고 생각했지만 작동하지 않았던 많은 제안 솔루션을 사용했지만 찾을 수 있는 이 문제를 구체적으로 해결하는 것은 없습니다. 나는 '슈퍼유저'가 이 문제나 이와 유사한 문제를 경험했을 수도 있다고 생각했습니다. 이 문제에 대한 세부 정보가 포함된 문제를 Git-Hub에 게시했습니다. 업데이트된 목록으로 자동 완성 상자를 업데이트하지 않는 presentsProvider 매개변수의 버그라고 생각되는 문제입니다. FXExperience에서 이 ControlFX를 사용하는 응용 프로그램은 데이터베이스 간을 전환하므로 결과 JavaFX ComboBox는 Textfields.bindAutoCompletion 메서드에도 전달되는 각 데이터베이스에 특정한 새 매개 변수 목록으로 업데이트됩니다. 또한 데이터베이스가 전환될 때마다 제안 제공자의 결함으로 인해 이전 목록에도 새 목록이 추가됩니다.
한동안 승인이 없었기 때문에 아래 세부정보를 다시 작성했습니다. 필요한 경우 여기에서 문제를 확인할 수 있습니다.https://github.com/controlsfx/controlsfx/issues/1126
ComboBox 및 BindAuto Completion 업데이트 전: 업데이트 전 ComboBox 및 AutoComplete에 있는 데이터입니다. ComboBox 및 BindAuto 완성을 업데이트하기 전
콤보가 Null로 설정됨: 항목 ComboBox가 Null로 재설정됨 콤보가 Null로 설정됨
ControlFX에 Null 값만 전달하기bindAutoComplete:bindAutoCompletion 메서드에 새 값 전달하기 ControlFX binAutoComplete에만 Null 값 전달
ComboBox에 항목 없음: ComboBox 드롭다운에는 전달된 null 값 항목만 표시됩니다. 콤보박스에 항목이 없습니다
ControlsFX_bindAutoComplete는 이전 목록을 유지합니다. 업데이트된 매개변수가 전달되었음에도 불구하고 컨트롤bindAutoCompletion은 항목의 이전 목록을 계속 유지합니다. ControlsFX_bindAutoComplete는 이전 목록을 유지합니다.
답변1
이 문제를 해결할 수 있었습니다. 이 글을 삭제하기보다는 다음 사람을 위해 뭔가를 남겨두면 도움이 될 것 같다는 생각이 들었습니다. 해결책은 매우 간단했습니다. 나는 그것을 얻을 수 없었다.dispose()일하는 방법. 제공된 AutoCompletionBinding 선언이 잘못되었기 때문입니다. .dispose() 메소드가 나오던데 오류가 없어서 다른건줄 알았습니다. 수정 사항은 다음과 같습니다.
다음을 수행하십시오(유형 선언 없음).
AutoCompletionBinding auto = TextFields.bindAutoCompletion(myField, myList);
다음을 수행하지 마십시오:
AutoCompletionBinding<String> auto = TextFields.bindAutoCompletion(myField, myList);
이 선언을 작성한 후 업데이트된 데이터로 TextField 또는 ComboBox를 다시 초기화하기 전에 .dispose() 메서드를 호출하기만 하면 됩니다.
auto.dispose();