如何使用ControlsFX实现AutoComplete TextField

时间:2014-03-30 20:44:16

标签: java javafx autocomplete controlsfx

我使用的是ControlsFX的最新版本(8.0.5),我想我需要一些自动完成TextField的帮助,因为我对此非常陌生。

我从here

获得了此代码
AutoCompletionTextFieldBinding.createBinding(
MyTxtField,
SuggestionProvider.create("Hey", "Hello", "Hello World", "Apple", "Cool", "Costa", "Cola", "Coca Cola")
);

但它显示错误:method SuggestionProvider is not applicable.

有关实施此自动填充功能的任何建议,以便拥有类似于IDVALUE字典的数组吗?

2 个答案:

答案 0 :(得分:7)

如果您检查了您引用代码的副本 https://bitbucket.org/controlsfx/controlsfx/pull-request/196/auto-complete-support-see-127/diff(早期的feb) controlfx 8.05的发布日期是3月4日http://fxexperience.com/controlsfx/,可能的解释是该代码可能无法正常工作,因为您所引用的只是实验性API,尚未最终确定。最终版本是目前正在最终版本8.05中使用的版本 如在

TextFields.bindAutoCompletion(
            textField,
            "Hey", "Hello", "Hello World", "Apple", "Cool", "Costa", "Cola", "Coca Cola");

以及您可以使用IDE中的自动完成功能检查的其他API

我建议查看controlfx 8.05示例以查看源代码,这将有很大帮助:}

答案 1 :(得分:2)

现在,您可以使用AutoCompletionTextFieldBinding作为以下内容:

TextField textField = new TextField();
new AutoCompletionTextFieldBinding(textField, new Callback<AutoCompletionBinding.ISuggestionRequest, Collection>() {
    @Override
    public Collection call(AutoCompletionBinding.ISuggestionRequest param) {
        return Arrays.asList("Option 1", "Option 2");
    }
});