这里我的要求是,当我在组合框中输入一些东西时,它应该搜索数据库并获得相关的data.when我正在输入它应该修复到确切的数据移除不想要的values..Here是我的code..nothing发生
private void ComboItemName() {
bbb = false;
txtComboItemName = (JTextField) ComboItemName.getEditor().getEditorComponent();
txtComboItemName.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent evt) {
if (!(evt.getKeyCode() == KeyEvent.VK_DOWN || evt.getKeyCode() == KeyEvent.VK_UP || evt.getKeyCode() == KeyEvent.VK_LEFT || evt.getKeyCode() == KeyEvent.VK_RIGHT || evt.getKeyCode() == KeyEvent.VK_ENTER)) {
try {
S3 = txtComboItemName.getText();
ResultSet rst = new JDBC.DB().getData("select * from item_reg where id like '%" + S3 + "'");
boolean b = rst.next();
boolean bb = false;
if (b) {
ComboItemName.removeAllItems();
bb = true;
}
while (b) {
if (rst.getString(1).startsWith(S3)) {
ComboItemName.addItem(rst.getString(1));
}
b = rst.next();
}
ComboItemName.setSelectedItem(S3);
txtComboItemName.setCaretPosition((ComboItemName.getSelectedItem() + "").length());
ComboItemName.showPopup();
int i = ComboItemName.getItemCount();
if (i > ComboItemName.getMaximumRowCount()) {
ComboItemName.setMaximumRowCount(15);
} else {
ComboItemName.setMaximumRowCount(i);
}
bbb = true;
} catch (Exception ex) {
System.out.println(ex);
}
} else if (evt.getKeyCode() == KeyEvent.VK_ENTER && bbb == true) {
boolean bIT = false;
String Sr123 = (String) ComboItemName.getSelectedItem();
try {
ResultSet Rst23 = new JDBC.DB().getData("select id from item_reg");
while (Rst23.next()) {
if (Sr123.equals(Rst23.getString(1))) {
bIT = true;
break;
} else {
bIT = false;
}
}
bbb = false;
} catch (Exception ex) {
System.out.println(ex);
}
}
}
});
}发布于 2013-12-06 17:06:04
此ResultSet rst = new JDBC.DB().getData("select * from item_reg where id like '%" + S3 + "'");查询是否工作正常??
检查b的值。
boolean b = rst.next();可能是您的查询不起作用。
https://stackoverflow.com/questions/20419776
复制相似问题