2013-03-23 93 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