我正在编写一个程序,其中涉及在组合框中输入用户名,并且项目列表应更改以反映框中的文本(类似于您在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