删除方法适用于bindAutoCompletion()类TextFields库ControlsFX

问题描述 投票:0回答:2

我在文本框中通过选择组合框分别将文本字段与指定数据绑定。关键是在第一次绑定过程之后,您无法删除效果。我选择绑定登录,这会绑定一个带登录的文本框。然后我想绑定电子邮件,然后我开发两个列表,登录和电子邮件。

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

}

enter image description here

在登录下面,在电子邮件之上。有谁知道如何消除这种影响?

java javafx fxml controlsfx
2个回答
2
投票

如果你这样做,

@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-examplejavadocs


0
投票

这是对这篇文章的迟到回应,但是,我发现它显然不起作用,因为它没有被检查。它也不适合我,但两周后我发现了原因。

如果您将类型作为声明的一部分包含在内,则上面提出的声明和初始化不起作用。您需要从声明中删除类型,然后.dispose()方法将起作用。

这不起作用:

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

这样做:

AutoCompletionBinding acbLogin = TextFields.bindAutoCompletion(textSearchPerson, Database.loadLogins());
© www.soinside.com 2019 - 2024. All rights reserved.