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

10-08 18:36