简体   繁体   English

如何在Jtable中搜索特定数据?

[英]How can I search particular data in Jtable?

I have a textfield and it must search a particular records from the Jtable. 我有一个文本字段,它必须从Jtable中搜索特定的记录。 How can I search particular records in the table? 如何搜索表中的特定记录? The records that had been search will only be display at the table. 已搜索的记录将仅显示在表中。 after searching it can be highlight and put the value of the highlighted records in a txtfield or label. 搜索后,可以突出显示并将突出显示的记录的值放在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);    
}                                     
}

It only search for the Customer ID. 它仅搜索客户ID。 and if I search other records are still in the table. 如果我搜索其他记录仍在表中。 I want if I search for a particular record. 我想搜索特定记录。 The search record will be displayed at the table. 搜索记录将显示在表中。

  • have look at JTable tutorial 看一下JTable教程

  • about Sorting and Filtering , example in the tutorial 本教程中有关示例“ 排序和过滤”的信息

  • for better help sooner post an SSCC E, because your code demonstrating JDBC and PreparedStatement, 为了更好的帮助,请尽早发布SSCC E,因为您的代码演示了JDBC和PreparedStatement,

  • you'll have issue with Concurency in Swing , Swing GUI will be unresponsible (mouse and key events) until hard and long running JDBC Statement ended, (in this form, your code), 在Swing中的Concurency上会遇到问题, 长期运行的JDBC Statement (以这种形式,您的代码)结束之前,Swing GUI将是不负责任的 (鼠标和键事件),

  • have to redirect the JDBC Statement to the BackGround Task, use Runnable#Thread or SwingWorker` 必须将JDBC Statement to the BackGround Task, use重定向JDBC Statement to the BackGround Task, use Runnable#Thread or SwingWorker`

  • all updates to the Swing GUI must be done on Event Dispatch Thread Swing GUI所有更新必须在事件调度线程上完成

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

You should to add jar/folder this rs2xml.jar in your project 您应该在项目中添加jar /文件夹rs2xml.jar

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM