运行后只能显示出所读出那几行的网格线,但读不出数据,看的头疼了~
部分代码如下:
table=new JTable();
DefaultTableModel model = (DefaultTableModel) this.table.getModel();
sum=model.getRowCount();
while(sum>0)
{
model.removeRow(0);
sum--;
}


//显示数据库信息
try
{
String url= "jdbc:mysql://127.0.0.1:3306/hit";
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(url,"root","04074615"); 
Statement statement=con.createStatement();

String query="select number,name,sex,age,birthday,college from student";
ResultSet rs=statement.executeQuery(query);
while(rs.next())
{
row[0]=rs.getString(1);
row[1]=rs.getString(2).trim();
row[2]=rs.getString(3).trim();
row[3]=rs.getString(4).trim();
row[4]=rs.getString(5).trim();
row[5]=rs.getString(6).trim();
model.addRow(row);
}
model.addColumn("学号");
model.addColumn("姓名");
model.addColumn("性别");
model.addColumn("年龄");
model.addColumn("生日");
model.addColumn("学院");
                       }catch{}//省略
            table.setModel(model);
table.updateUI();
scrollPane1=new JScrollPane();
scrollPane1.getViewport().add(table);
jp1.setLayout(localBorderLayout1);
jp1.add(scrollPane1,"Center");
this.add(jp1);

解决方案 »

  1.   

    Swing Hacks 书上有个Hack就是讲这个的,你可以参考一下
      

  2.   

    你addColumn的位置放错了,jtable默认的表格模型是0行0列的,你在addColumn前addRow的话只是单纯的增加行数。把addColumn放在DefaultTableModel后面
    ,另外不需要  table.setModel(model);因为DefaultTableModel的添加行列方法会自动通知Jtable更新视图的。