0

我有一个文本字段,它必须从 Jtable 中搜索特定记录。如何搜索表中的特定记录?已搜索的记录只会显示在表中。搜索后可以突出显示并将突出显示的记录的值放在 txtfield 或标签中。

private void txtsearchKeyReleased(java.awt.event.KeyEvent evt) {                                      
   try{
       String sql = "select * from customer where Customer_ID=?";
       pst=conn.prepareStatement(sql);
       pst.setString(1, txtsearch.getText());
       rs= pst.executeQuery();
       if(rs.next()){
           String add1 =rs.getString("Customer_ID");
           lblID.setText(add1);
           String add2 = rs.getString("First_Name");
           lblfname.setText(add2);
           String add3 = rs.getString("Last_Name");
           lbllname.setText(add3);
           String add4 = rs.getString("Birthdate");
           lblbirthdate.setText(add4);
           String add5 = rs.getString("Gender");
           lblgender.setText(add5);
           String add6 = rs.getString("Occupation");
           lbloccupation.setText(add6);
           String add7 = rs.getString("Address");
           lbladdress.setText(add7);
           String add8 = rs.getString("Email");
           lblemailadd.setText(add8);
           String add9 = rs.getString("Contact");
           lblcontact.setText(add9);
           String add10 = rs.getString("Status");
           lblstatus.setText(add10);
           String add11 = rs.getString("Income");
           lblincome.setText(add11);
           String add12 = rs.getString("Amount");
           lblamount.setText(add12);
           String add13 = rs.getString("Months");
           lblterm.setText(add13 +" months");
           String add14 = rs.getString("Interest");
           lblinterest.setText(add14);
           String add15 = rs.getString("Date_Applied");
           lblapplied.setText(add15);
           String add16 = rs.getString("Purpose");
           lblpurpose.setText(add16);
       }
   }
           catch(Exception e){
JOptionPane.showMessageDialog(null, e);    
}                                     
}

它只搜索客户 ID。如果我搜索其他记录仍在表中。如果我搜索特定记录,我想要。搜索记录将显示在表格中。

4

3 回答 3

1
  • 看看JTable 教程

  • 关于排序和过滤,教程中的示例

  • 为了获得更好的帮助,请尽快发布SSCC E,因为您的代码演示了 JDBC 和 PreparedStatement,

  • 您将在 Swing 中遇到 Concurency问题,Swing GUI 将是不负责任的(鼠标和按键事件),直到艰难而长期的运行JDBC Statement结束,(以这种形式,您的代码),

  • 必须重定向JDBC Statement to the BackGround Task, useRunnable#Thread orSwingWorker`

  • Swing GUI必须在事件调度线程上完成所有更新

于 2012-10-13T12:30:49.063 回答
0

你应该在你的项目中添加这个 rs2xml.jar 的 jar/文件夹

String sql="Select * From Inventarizimi where Regjistrimi=?";
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con= (Connection) DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","Inventarizimi"); PreparedStatement preStatement = con.prepareStatement(sql); preStatement.setString(1, txtRegjistrimi.getText()); ResultSet 结果 = preStatement.executeQuery();
table.setModel(DbUtils.resultSetToTableModel(result));

于 2014-10-14T12:34:31.040 回答
0

您对内部模型进行过滤,并使用过滤后的结果更新表模型。

于 2012-10-13T12:24:58.880 回答