正如你所看到的那样,我尝试新项目的时候就像重复一样。我该怎么办?
我写了一个JTable
redisplayer类。所以有一个表的添加按钮。当点击那个按钮时它应该是exp我添加1.我添加2.应该只显示1 2。不是1 1 2那样。
jTable1.removeAll();
jTable1.revalidate();
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e){
System.err.println("Driver yok");
return;
}
Connection con=null;
try{
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/kutuphane","root","");
System.out.println("Veritabnı baglandıldı");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * FROM kisiler ");
while(rs.next()){
model=(DefaultTableModel) jTable1.getModel();
model.insertRow(i,new Object[]{rs.getString("ADSOYAD"),rs.getInt("TELEFON"),rs.getInt("TCNO"),rs.getString("ADRES") } );
i++;
}
jTable1.setModel(model);
jTable1.revalidate();
stmt.close();
rs.close();
}
catch(SQLException e){
System.out.println("Veritabanı baglanmadi");
e.printStackTrace();
}
finally{
if(con!=null)
try{
con.close();
}
catch(SQLException e){
e.printStackTrace();
}
答案 0 :(得分:1)
首先,摆脱代码顶部的这一行
jTable1.removeAll(); //DELETE THIS LINE!!
您可能希望它从表格模型中删除所有行,但这不是什么。
接下来,将while
循环及其后面的两行替换为:
model = new DefaultTableModel();
while(rs.next()){
model.addRow(new Object[]{
rs.getString("ADSOYAD"),
rs.getInt("TELEFON"),
rs.getInt("TCNO"),
rs.getString("ADRES")}
);
}
jTable1.setModel(model);
请注意,我使用addRow
代替insertRow
,因此可能不再需要i
。