我通过以下代码在netbeans中填写jtable(tbl_student):
String[][] result;
result = stu.Search(txt_search.getText());
String hdr[] = {"code", "name", "family"};
tbl_student = new JTable(result, hdr);
jScrollPane1.setViewportView(tbl_student);
tbl_student.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
该Search()函数是从sql server数据库中的表中选择所有查询。 现在,我想在此表中找到所选行。我该怎么做? 我在jtable的鼠标点击事件中的代码不起作用! 我该怎么办?
答案 0 :(得分:1)
如果在单击JTable中的某一行时需要获取一些数据,请使用以下代码。
int row=tbl_student.getSelectedRow();
String Table_data=(tbl_student.getModel().getValueAt(row, 0).toString()); // In here 0 means the column number.
//If you have a JTable with 5 columns; 0 is the 1st column and 4 is the last (5th) column.
如果你想将数据库表中的数据传递给JTable,它们是一个名为rs2xml.jar的库,在该库的帮助下,你只需用数据库数据填充JTable即可。
您可以从HERE下载该库。
下载库后,使用以下代码填充JTable。
Connection conn=null;
ResultSet rs=null;
PreparedStatement pst=null;
try{
String sql="SELECT * FROM table_name"
conn=java_connect.ConnecrDb(); //Database connecting class
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
tbl_student.setModel(DbUtils.resultSetToTableModel(rs));
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}