ここで私の要件は、コンボボックスに何かを入力すると、DBを検索して関連するデータを取得する必要があることです。入力すると、不要な値を削除して正確なデータに修正する必要があります..
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);
}
}
}
});
}