gpt4 book ai didi

java - 使用 JComboBox 作为搜索框

转载 作者:行者123 更新时间:2023-12-02 07:21:07 28 4
gpt4 key购买 nike

我使用 JComboBox 从 SQL 数据库中搜索查询。这是我的代码。

private void srKeyTyped(java.awt.event.KeyEvent evt){
sr.removeAllItems();
String sch = ((JTextField)sr.getEditor().getEditorComponent()).getText();
String schh = "SELECT * FROM tbl WHERE name LIKE '" + sch + "%';";
search = conn.getQuery(schh);
try {
while (search.next()) {
String item = search.getString("name");
sr.addItem(item);
}
} catch (SQLException ex) {
Logger.getLogger(dataprocess.class.getName()).log(Level.SEVERE, null, ex);
}
sr.setSelectedItem(null);
sr.setPopupVisible(true);

System.out.println(sch);
}

sr = JComboBox

但是当我在组合框中输入一个字母时,它会添加数据库中的所有项目。我发现 System.out.println(sch); 总是给出一个空字符串。一旦我输入一个字母,组合框的文本字段就会变成空(我无法输入包含两个字母的单词)。如何解决这个问题?谢谢。

最佳答案

您遇到问题的原因如下:

  1. sch 始终为空,因为您在调用 String sch = ((JTextField)sr. getEditor().getEditorComponent()).getText();。这意味着在获得所选内容之前,JComboBox 的内容(以及所选内容)已被清除。

    解决方案:在获得所选项目后调用sr.removeAllItems();

  2. 组合框会变成空,因为您在重新填充组合框后最后调用了 sr.setSelectedItem(null);

    解决方案:如果您想要输入的文本,则 sr.getEditor().setItem(scr);

只有想法,但尝试将方法的内容包含在 if 语句 中,并检查是否按下了Enter 键。这样,方法内容只会在输入所需的字符串后执行,而不是每次按下按键时执行。

关于java - 使用 JComboBox 作为搜索框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14218749/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com