2012-08-27 58 views
3

我无法重新绘制我的jTable。我必须重新运行所有应用程序才能显示addRow。添加新行后JTable不显示新模型

这是代码:

MainPage.java http://pastebin.com/6FZL1pKC

public class Mainpage2 extends javax.swing.JFrame { 

public static DefaultTableModel tripModel; 
/** 
* Creates new form carpoolingui 
*/ 
public Mainpage2(){ 
    try { 
     tripModel = MPtable.myModel(Parser.parsa_tratta(Database.doRequest("SELECT * from tratte"))); 
    } catch (Exception ex) { 
     Logger.getLogger(Mainpage2.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    initComponents(); 
} 
.... 
jTable1.setModel(tripModel); 
.... 
public void tripRepaint() throws MalformedURLException, Exception{ 
     System.out.println(jTable1.getModel()); 
     tripModel = MPtable.myModel(Parser.parsa_tratta(Database.doRequest("SELECT * from tratte"))); 
     jTable1.setModel(tripModel); 
     jTable1.repaint(); 

     System.out.println(jTable1.getModel()); 
     System.out.println(tripModel); 

这最后3的println()显示模式发生了变化! 笑{} 输出:

Tratta AGGIUNTA

[email protected]

BOLOGNA

...

卡坦扎罗

NEW_DEPARTURE_ADDED

[email protected]​​d54dd

[email protected]​​d54dd

所以works..but它不显示新模式!

AddTrip.java http://pastebin.com/t0LqF91a

Carpooling2.mainPage2.tripRepaint(); 

MPTable.java http://pastebin.com/2gXvYNLC

public class MPtable { 


public static DefaultTableModel myModel(Tratta[] tratta_array){ 
    int i; 

    DefaultTableModel model = new DefaultTableModel(); 
    model.addColumn("ID"); 
    model.addColumn("LUOGO PARTENZA"); 
    model.addColumn("LUOGO ARRIVO"); 
    model.addColumn("DATA"); 
    model.addColumn("ORA PARTENZA"); 
    model.addColumn("ORA ARRIVO"); 
    model.addColumn("COSTO (€)"); 
    model.addColumn("POSTI DISPONIBILI"); 
    model.addColumn("AUTISTA"); 
    model.addColumn("INFORMAZIONI"); 

    for (i=0; i<tratta_array.length; i++){ 
      System.out.println(tratta_array[i].getLuogoPartenza()); 
      } 

    for (i=0; i<tratta_array.length; i++){ 
     model.addRow(new Object[] { 
       tratta_array[i].getId(), 
       tratta_array[i].getLuogoPartenza(), 
       tratta_array[i].getLuogoArrivo(), 
       tratta_array[i].getData(), 
       tratta_array[i].getOraPartenza(), 
       tratta_array[i].getOraArrivo(), 
       tratta_array[i].getCosto(), 
       tratta_array[i].getPostiDisponibili(), 
       tratta_array[i].getAutista(), 
       tratta_array[i].getInfo() 
       } 
     ); 
    } 
    return model; 
    } 

回答