2016-07-06 2 views
-2

Как вы можете видеть, когда я пытаюсь использовать новые предметы, похожие на это повторение. Что мне делать?JTable - отображаются те же предметы

Я написал JTable redisplayer класс. Так что добавьте кнопку в таблицу. Когда вы нажимаете эту кнопку, она должна быть для exp I добавлена ​​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

Вы должны отредактировать свое сообщение и удалить ссылку на изображение и включить его в свой вопрос. Также не используйте слова mani для верхнего слова, так как это затрудняет чтение. – Andrej

+0

http://i.stack.imgur.com/UGWZE.png его моя проблема спасибо –

+0

Ребята, plz, дайте мне знать, что вы не понимаете? Я попытаюсь объяснить точно –

ответ

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 больше, вероятно, нет необходимости.

+0

Спасибо, но после model = new DefaultTableModel(); этот jtable исчезает. Изменения не отображаются. –

+0

Я думаю, вам нужно очистить старые строки, прежде чем добавлять новые. Это то, чего я пытался добиться, создав модель заново. Но вы также можете попробовать: while (model.getRowCount()> 0) model.removeRow (0); Также не забудьте установить i в ноль, прежде чем начинать вставлять новые строки. –

+0

Просто используйте 'model.setRowCount (0)' для удаления строк данных из 'DefaultTableModel'. – camickr