2016-07-06 10 views
-2

新しいアイテムを試してみると分かりますが、この繰り返しのようになっています。私は何をすべきか?JTable - 同じアイテムが表示されます

私はJTable redisplayerクラスを書きました。だからテーブルに追加ボタンがあります。そのボタンをクリックすると、expに追加する必要があります。1.追加した後2.ディスプレイ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

投稿を編集して画像へのリンクを削除し、質問に含める必要があります。それは読みにくいので、大文字の大文字を使わないでください。 – Andrej

+0

http://i.stack.imgur.com/UGWZE.pngその私の問題ありがとう –

+0

みんなplzは私が何を理解していないか知っていますか?私は正確に説明しようとします –

答えて

1

まず、あなたのコード

jTable1.removeAll(); //DELETE THIS LINE!! 

の先頭に次の行を取り除くあなたは、おそらくそれはあなたのテーブルモデルからすべての行を削除するには期待しているが、それは何をするかではありません。そうiはおそらくもはや必要ではない、私が代わりにinsertRowaddRowを使用しています

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); 

注:

次に、でそれの後whileループと2行を交換してください。

+0

ありがとうございますが、モデルの後に=新しいDefaultTableModel();このjtableが消えます.Changesは表示されません。 –

+0

新しい行を追加する前に古い行を消去する必要があると思います。それは私がモデルを新たに作成することによって達成しようとしていたものです。しかし、あなたもこれを試すことができます:while(model.getRowCount()> 0)model.removeRow(0);また、新しい行を挿入する前に必ずiを0に設定してください。 –

+0

'DefaultTableModel'からデータの行を削除するには' model.setRowCount(0) 'を使います。 – camickr

関連する問題