如何在启动时不显示数据库中的数据?

How to do not display data from the database at starting?

我不想在启动时显示数据库中的所有数据。我只想将所有内容留空 直到用户不在文本框中输入任何内容。喜欢寻找。请有人帮助我。

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);

如果您只想在用户点击 Enter 时获取数据(例如在某些搜索应用程序中),那么您只需添加一个 ActionListener.

JTextField searchField = new JTextField(20);
searchField.addActionListener(new ActionListener()
{
  @Override
  public void actionPerformed(ActionEvent e)
  {
    System.out.println("Fetch data");
  }
});