我正在编写一个程序,其中涉及让用户在组合框中键入内容,并且项目列表应更改以反射(reflect)框中的文本(类似于您在 Google 中键入内容时的自动完成功能)
但是,在我按 Enter 之前,我的组合框不会更新。当输入常规键时它似乎不会更新。我尝试过将各种监听器添加到组合框,但都没有解决问题。
这是最成功的代码片段。它是从 fxml 代码调用的:onKeyReleased="#keyReleased"。它工作正常,但仍然只有在按下 Enter 时才会执行。
public void keyReleased() throws SQLException, ClassNotFoundException
{
String coname = custconame_combo.getValue();
scriptHandler = new ScriptHandler();
custconame_combo.getItems().clear();
int i = 0;
for (String s : scriptHandler.searchCustomer(coname))
{
System.out.println(s);
custconame_combo.getItems().add(s);
custconame_combo.show();
i += 1;
}
}
我已经搜索了很多次,但似乎仍然无法解决这个问题。
最佳答案
既然我已经解决了我的问题,我将分享我发现的内容。
第三方库提供了最简单的解决方案。我选择了 JFoenix 中的自动完成类。它完全具有我一直在寻找的功能,并且感觉不像我在尝试重新发明轮子。
这个答案对我的搜索非常有帮助:JavaFX TextField Auto-suggestions
关于java - 如何让 JavaFx Combobox 响应用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51995842/