Pasé varios días investigando este problema en particular y utilicé muchas soluciones sugeridas como '.dispose()' que pensé que podrían funcionar pero no lo hicieron, pero nada que pueda encontrar aborda específicamente este problema. Pensé que un "superusuario" podría haber experimentado este problema o similar. Publiqué un problema en Git-Hub con detalles sobre este problema, de lo que creo que es un error en el parámetro sugerenciaProvider, que no actualiza el cuadro de autocompletar con una lista actualizada. La aplicación que utiliza este ControlFX de FXExperience cambia entre bases de datos, por lo que el JavaFX ComboBox resultante se actualiza con una nueva lista de parámetros específicos de cada base de datos que también se pasan al método Textfields.bindAutoCompletion. Además, cada vez que se cambia una base de datos, el defecto en el proveedor de sugerencias también agrega la nueva lista a la lista anterior.
He recreado los detalles a continuación porque ha pasado algún tiempo sin ningún reconocimiento. Puede ver el problema aquí si es necesario:https://github.com/controlsfx/controlsfx/issues/1126
Antes de actualizar ComboBox y BindAuto Completion: estos son datos en ComboBox y Autocompletar antes de actualizar Antes de actualizar ComboBox y BindAuto Completion
Conjunto combinado en nulo: Tema ComboBox restablecido en nulo Conjunto combinado en nulo
Pasar valor nulo solo a ControlFX bindAutoComplete: pasar nuevos valores al método bindAutoCompletion Pasar valor nulo solo a ControlFX bindAutoComplete
No hay elementos en ComboBox: el menú desplegable de ComboBox solo muestra el elemento de valor nulo pasado No hay elementos en el cuadro combinado
ControlsFX_bindAutoComplete conserva la lista anterior: los controles bindAutoCompletion aún conservan la lista anterior de elementos aunque se le pasaron parámetros actualizados. ControlsFX_bindAutoComplete conserva la lista anterior
Respuesta1
Pude resolver este problema. En lugar de eliminar esta publicación, pensé que sería útil tener algo para la siguiente persona. La solución fue bastante sencilla. no pude conseguir el.disponer()método para trabajar. Fue porque la declaración AutoCompletionBinding sugerida proporcionada era incorrecta. Aparecía el método .dispose() pero como no había ningún error, pensé que era otra cosa. Esta es la solución:
Haga esto (sin declaración de tipo):
AutoCompletionBinding auto = TextFields.bindAutoCompletion(myField, myList);
No hagas esto:
AutoCompletionBinding<String> auto = TextFields.bindAutoCompletion(myField, myList);
Después de hacer esta declaración, simplemente llame al método .dispose() antes de reinicializar su TextField o ComboBox con datos actualizados.
auto.dispose();