我不想在启动时显示数据库中的所有数据。我只想将所有内容保留为空白,直到用户未在文本框中键入任何内容。喜欢搜索。请有人帮助我。
private void tKeyReleased(java.awt.event.KeyEvent evt) {
//keyboard searching
try{
javax.swing.table.DefaultTableModel dtm=
(javax.swing.table.DefaultTableModel)rTable.getModel();
int rc=dtm.getRowCount();
while(rc--!=0){
dtm.removeRow(0);
}
dtm.setRowCount(0);
String n=t.getText();
db.dbConnect.getUsers.setString(1,"%"+n+"%");
ResultSet rs=db.dbConnect.getUsers.executeQuery();
while(rs.next()){
java.util.Vector row=new java.util.Vector();
row.add(rs.getInt("cid"));
row.add(rs.getString("name"));
row.add(rs.getString("gender"));
row.add(rs.getDate("dob"));
row.add(rs.getString("country"));
row.add(rs.getString("address"));
row.add(rs.getString("language"));
dtm.addRow(row);
}
} catch(Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
您可以将DocumentListener添加到文本字段中,并检查文本字段的长度是否大于X阈值。
注意:就像MadProgrammer所说的那样,您想要添加一个计时器以避免对数据库的过多调用。
感谢MadProgrammer指出这一点。
JTextField textField = new JTextField(20);
DocumentListener documentListener = new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
onTextChange();
}
@Override
public void removeUpdate(DocumentEvent e) {
onTextChange();
}
@Override
public void changedUpdate(DocumentEvent e) {
onTextChange();
}
public void onTextChange() {
String text = textField.getText();
if(text.length() > 0){
// display the data
}
}
};
textField .getDocument().addDocumentListener(documentListener);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句