ArrayList<String> aniNames = new ArrayList<>();
我与数据库建立连接,并在上面的 ArrayList 中存储了 7K 动漫名称。
JFXAutoCompletePopup<String> autoCompPop = new JFXAutoCompletePopup<>();
for (int i=0; i<aniNames.size(); i++){
autoCompPop.getSuggestions().addAll(aniNames.get(i));
}
autoCompPop.setSelectionHandler(event ->{
autoTF.setText(event.getObject());
});
autoTF.textProperty().addListener(observable -> {
autoCompPop.filter(string -> string.toLowerCase().contains(autoTF.getText().toLowerCase()));
if (autoCompPop.getFilteredSuggestions().isEmpty() || autoTF.getText().isEmpty()) {
autoCompPop.hide();
} else {
autoCompPop.show(autoTF);
}
});
所以我写了这个程序,当我输入一些东西时,它会显示自动完成弹出窗口。
当我输入一个字母时,让我们说“a”或任何其他字母,它显示几乎所有动漫名称中都有“a”,这意味着几乎所有 7k 动漫。
如果超过某个数字,我想限制它显示的结果数量,例如,如果超过 20 部动漫的名称中有“a”,那么我希望它只在弹出窗口中显示前 20 部动漫。