行添加两次jtable

时间:2014-01-26 07:36:18

标签: java swing jtable

我正在尝试在我的表中添加一行......但是下面的代码在每行的末尾添加了两行...即,我得到两个相似的行而不是一行

DefaultTableModel tb=(DefaultTableModel)tb1.getModel();
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/db","root","");
Statement stmt=con.createStatement();
int a=(Integer) l1.getSelectedValue();
System.out.println(a);
String query="select * from student where rno ="+a+";";
System.out.println(query);
ResultSet rs=stmt.executeQuery(query);
while(rs.next()){
    int rno=rs.getInt("rno");
    String name=rs.getString("name");
    String sec= rs.getString("sec");
    tb.insertRow(0,new Object[]{name,rno,name,sec});
    tb1.setModel(tb);

2 个答案:

答案 0 :(得分:0)

在循环后调用,而不是循环:

tb1.setModel(tb);

答案 1 :(得分:0)

根本不需要 将模型设置为表格。您已经投射DefaultTableModel,除非您获得投射例外,否则该表应该已经存在DefaultTableModel。所有您需要的只是addRow(row)insetRow(index, row);。无需设置模型,表格将通过其DefaultTableModel

自动更新