Метод удаления работает bindAutoCompletion (), класс TextFields, библиотека ControlsFX

У меня в текстовом поле, что при выборе поля со списком привязывает соответственно текстовое поле с указанными данными. Дело в том, что после первого связывания вы не можете удалить эффект. Я выбираю обязательные логины, это привязывает меня к текстовому полю с логинами. Затем я хочу Bind e-mail, затем я разрабатываю два списка, логин и e-mail.

@FXML
public void setToSearch() {
    if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 1)
        TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
    if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 5)
        TextFields.bindAutoCompletion(textSearchPerson, Database.loadEmails());

}

введите описание изображения здесь

Под логинами и в верхней части электронной почты. Кто-нибудь знает, как убрать этот эффект?

1 ответ

Если вы делаете это так,

@FXML
public void setToSearch() {
    if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 1)
        AutoCompletionBinding<String> acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
    if(comboSettingsSearch.getSelectionModel().getSelectedIndex() == 5)
        AutoCompletionBinding<String> acbEmail = TextFields.bindAutoCompletion(textSearchPerson, Database.loadEmails());
}

вы можете избавиться от привязки с

acbLogin.dispose();
acbEmail.dispose();

насколько я могу судить по HelloAutoComplete-example и javadocs.

AutoCompletionBinding acb = TextFields.bindAutoCompletion(txtfield,arraylistobj);
acb=null;

Это поздний ответ на этот пост, однако я вижу, что он, очевидно, не работал, потому что он не проверен. Это также не сработало для меня, но через две недели я понял, почему.

Предложенное объявление и инициализация выше не будут работать, если вы включите тип как часть объявления. Вам нужно удалить тип из объявления, и тогда метод.dispose() будет работать.

Это не работает:

AutoCompletionBinding<String> acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());

Это делает:

AutoCompletionBinding acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
Другие вопросы по тегам