我制作了一个正在填充数据库条目的组合框。我目前面临的问题是,当我写入“H”时,根据需要列表中会填入所有以“H”开头的名称,但列表中的第一个名称将自动被选中。如何避免这个问题?JComboBox通过iteself选择第一个项目
String ch = text.getText();
if (ch.equals("")) {
combo.setVisible(false);
} else {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/userlogin", "root","12345");
Statement st = connect.createStatement();
ResultSet rs = st.executeQuery("SELECT author_name FROM scrpd_authors WHERE author_name LIKE '"+ ch + "%'");
while (rs.next()) {
String name = rs.getString("author_name");
if (name.equals("")) {
searchitems.addItem("");
} else {
searchitems.addItem(rs.getString("author_name"));
searchitems.setVisible(true);
}
}
connect.close();
} catch (Exception ex) {
}
}
请注意,组合框充满基于MySQL查询所有我想要的条目,问题只是由本身的第一项的选择。
究竟应该选择什么呢?您可以使用侦听器,然后在填充列表后取消选择第一个条目。 – 2013-03-21 13:59:05
确保第一个项目是一个空的'String'。 – tmwanik 2013-03-21 14:00:13
为什么这是一个问题?最好的情况下,用户已经选择了正确的选项,最坏的情况下,他需要下移选择正确的选项,他也必须在你的方法中做。 – 2013-03-21 14:01:48