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

时间:2017-01-28 19:18:13

标签: java javafx fxml controlsfx

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

@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

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

3 个答案:

答案 0 :(得分: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-examplejavadocs

答案 1 :(得分:0)

这是对此帖子的最新回复,但是,我发现它显然没有用,因为未选中它。它对我也不起作用,但是两周后我发现了原因。

如果将类型作为声明的一部分,上述建议的声明和初始化将不起作用。您需要从声明中删除类型,然后.dispose()方法将起作用。

这不起作用:

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

这样做:

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

答案 2 :(得分:0)

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