[英]JTable doesn't show new model after adding new row
I can't repaint my jTable. 我无法重新绘制我的jTable。 I must re-run all application to show addRow.
我必须重新运行所有应用程序才能显示addRow。
This is the code: 这是代码:
MainPage.java http://pastebin.com/6FZL1pKC 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);
These last 3 println() show that model has changed! 最后3个println()表明模型已经改变了! lol{} Output:
lol {}输出:
Tratta AGGIUNTA Tratta AGGIUNTA
javax.swing.table.DefaultTableModel@1ca7e4a javax.swing.table.DefaultTableModel@1ca7e4a
BOLOGNA BOLOGNA
... ...
CATANZARO 卡坦扎罗
NEW_DEPARTURE_ADDED NEW_DEPARTURE_ADDED
javax.swing.table.DefaultTableModel@17d54dd javax.swing.table.DefaultTableModel@17d54dd
javax.swing.table.DefaultTableModel@17d54dd javax.swing.table.DefaultTableModel@17d54dd
So it works..but It doesn't show new model!! 所以它工作..但它没有显示新的模型!
AddTrip.java http://pastebin.com/t0LqF91a AddTrip.java http://pastebin.com/t0LqF91a
Carpooling2.mainPage2.tripRepaint();
MPTable.java http://pastebin.com/2gXvYNLC 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;
}
You need to inform the table, that the structure and/or data has changed. 您需要通知表格,结构和/或数据已更改。 Question is answered here eg: JTable How to refresh table model after insert delete or update the data.
问题在这里得到解答,例如: JTable如何在插入删除或更新数据后刷新表模型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.