Events JavaFx controlsFX自动完成事件不';行不通

Events JavaFx controlsFX自动完成事件不';行不通,events,binding,javafx,custom-controls,Events,Binding,Javafx,Custom Controls,我想处理controlsFX 8.0.5框架的AutoCompletionEvent,但不知怎的,它永远不会被触发?!当没有可用的建议时,应该有一个带有“new…”的条目,当选择此条目时,我想做一些事情。因此,我设置了一个EventHandler 我实现了如下绑定: AutoCompletionBinding<String> bind = TextFields.bindAutoCompletion(tf, sr -> { List<String&g

我想处理controlsFX 8.0.5框架的AutoCompletionEvent,但不知怎的,它永远不会被触发?!当没有可用的建议时,应该有一个带有“new…”的条目,当选择此条目时,我想做一些事情。因此,我设置了一个EventHandler

我实现了如下绑定:

AutoCompletionBinding<String> bind = TextFields.bindAutoCompletion(tf, sr -> {
            List<String> shownSuggestions = new ArrayList<String>();
            for (Client c : suggestions) {
                if (!sr.getUserText().isEmpty() 
                        && c.toString().toLowerCase().startsWith(sr.getUserText().toLowerCase())) {
                    shownSuggestions.add(c.toString());
                }
                if (shownSuggestions.isEmpty()) {
                    if (sr.getUserText().isEmpty()) {
                        shownSuggestions.add(NEW_PARTY);
                    } else {
                        shownSuggestions.add(sr.getUserText() + NEW_PARTY_WITH_NAME);
                    }
                }
            }
            return shownSuggestions;
        });
autocompletionbind=TextFields.bindsautocompletion(tf,sr->{
List shownSuggestions=new ArrayList();
针对(客户c:建议){
如果(!sr.getUserText().isEmpty())
&&c.toString().toLowerCase().StartWith(sr.getUserText().toLowerCase()){
添加(c.toString());
}
if(shownSuggestions.isEmpty()){
if(sr.getUserText().isEmpty()){
shownSuggestions.add(新党);
}否则{
shownSuggestions.add(sr.getUserText()+带有名称的新参与方);
}
}
}
返回显示建议;
});
这是我的事件处理程序:

            bind.setOnAutoCompleted(new EventHandler<AutoCompletionEvent<String>>() {
            @Override
            public void handle(AutoCompletionEvent<String> event) {
                if (event.getCompletion().equals(NEW_PARTY)) {
                    System.out.println("new party chosen");
                } else if (event.getCompletion().endsWith(NEW_PARTY_WITH_NAME)) {
                    System.out.println("new party with input chosen");
                }
                event.consume();
            }
        });
bind.setOnAutoCompleted(新的EventHandler(){
@凌驾
公共无效句柄(自动完成事件){
if(event.getCompletion().equals(NEW_PARTY)){
System.out.println(“选择的新一方”);
}else if(event.getCompletion().endsWith(具有名称的新参与方)){
System.out.println(“选择输入的新方”);
}
event.consume();
}
});
但是控制台上没有输出

有人能帮我吗?我已经试了好几天了


关于

controlsFX 8.0.5中存在一个错误,导致事件从未触发。所以代码是正确的,但从未调用过。