我正在创建一个计费软件,我想从数据库中显示与我的JTable的项目列中键入的值相匹配的项目名称。为了做到这一点,我添加了一个KeyListener。一切工作正常,除了只有第一个键,触发按键事件。如果我按下Enter键然后再次输入,它会再次触发。我想要为每一个连续输入列的键都触发keyevent,任何人都可以帮助我...... ....?仅当按下第一个键时触发JTable按键事件
我给的代码片段...我要显示在itable从DB的项目...
public void keyPressed(KeyEvent e) {
rows=table.getSelectedRow();
cols=table.getSelectedColumn();
if(cols==2){
String code=(String)table.getValueAt(rows, cols);
Statement stmt = null;
ResultSet rs = null;
for (int i =model1.getRowCount();i>0; i--) {
model1.removeRow(i-1);
}
table.changeSelection(rows,cols, false, false);
itable.setVisible(true);
int i=0;
String SQL = "SELECT * FROM items where name like\'"+code+"%\' or
code=\'"+code+"\' order by name";
try{
stmt = (Statement) dbcon.con.createStatement();
rs = stmt.executeQuery(SQL);
while (rs.next()) {
model1.insertRow((i),new Object[]{""});
itable.setValueAt((Object)rs.getString("name"), i, 0);
i++;
}
}
catch(Exception e1){
table.editCellAt(rows,cols,null);
return;
}}
}
你能告诉我们你的代码吗? – Sednus
@Sednus我已经添加了片段...是否足够... – Swami
可能重复的[JTextField自动完成](http://stackoverflow.com/questions/8689695/jtextfield-autocomplete) – trashgod