2013-03-23 94 views
1

我對我的編(這是一個noob)有這個可愛的問題我想給我編一些動畫,我希望在拆分面板中的分隔符從gbPanel.getHeight()(最大高度)爲Border.getHeight()(最小高度)使用16像素的表格行亮度如果我做了一個System.out.println變量程序似乎工作奇蹟,但是!表中的分配器和一切等待,直到結束,以顯示它自己在窗口中...我第一次嘗試解決它或至少檢查是否是因爲添加一個Thread.sleep,但只是讓程序等待在此期間結束並更新窗口之前。然後我試着強迫窗戶在裏面更新,但那也沒用。任何人都在幫助我嗎?在將行添加到DefaultTableModel時,JTable圖形沒有更新

/* this display one row of data and makes the splitpanel divider -16 with each row */ 
public void DespliegaTD() { 
DefaultTableModel jModel = new DefaultTableModel(); 
    jTable1.setModel(jModel); 
    jModel.setColumnIdentifiers(new Object[]{"Num","Tarjeta","Cuenta","Fecha Trx","Monto","Descripción","Tipo POS","Cod Resp", "Moneda","Autorización","MCC","Resultado"}); 

    try { 
     ResultSet rs = Query(tDebito.getText(),cuenta.getText(),fechaInicio.getText(),fechaFinal.getText()); 
     while (rs.next()){ 
      if ((dbPane.getHeight()-(rs.getRow()*jTable1.getRowHeight())) >= (Border.getHeight()-1)) 
       dbPane.setDividerLocation((dbPane.getHeight()-(rs.getRow()*jTable1.getRowHeight()))); 
      jModel.addRow(new Object[] {rs.getRow(),rs.getString(1),rs.getString(2),dateFormat4.format(dateFormat3.parse(rs.getString(3))),rs.getString(4),rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9),rs.getString(10),rs.getString(11)}); 
     } 
    } catch (SQLException ex) { 
     Logger.getLogger(BVtarjetas.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (ParseException ex) { 
     Logger.getLogger(BVtarjetas.class.getName()).log(Level.SEVERE, null, ex); 
    } 
} 
+0

什麼是tarnation是「JMODEL」? – 2013-03-23 19:45:16

+0

感謝您的幫助 – aagcnet 2013-03-23 19:46:36

+1

如果您想傳達準確的信息,請使用準確的語言。您的標題非常混亂,因爲沒有實體被稱爲「JModel」。使用「TableModel」或「DefaultTableModel」以免混淆其他人只看標題,因爲這是搜索本網站時顯示的全部內容。是的,如果你按照建議,那*會*幫助。 – 2013-03-23 19:47:55

回答

3

您的問題是試圖在Swing事件線程(又名Event Dispatch Thread或EDT)上長時間運行的過程中執行動畫的問題之一。解決方案是使用後臺線程,例如通過SwingWorker。

+0

謝謝我會嘗試獲取關於SwingWorker的信息,並檢查TVE重新驗證重繪沒有工作,當我昨天試圖 – aagcnet 2013-03-23 20:20:59

+1

+ 1的SwingWorker,但我沒有看到任何理由做一個revalidate()或重繪()桌子。更新模型將導致表格自動重繪。 – camickr 2013-03-23 20:42:16

+0

他正在玩拆分窗格的分隔符位置,因爲每行都被讀取以不斷在拆分窗格中顯示另一行。設置分隔符位置將調用重新驗證和重繪。沒有組件被添加或刪除。 – camickr 2013-03-24 01:01:14