当前位置: 代码迷 >> J2SE >> JTble里由于getValueAt(int r, int c)严重影响画面速度是什么原因
  详细解决方案

JTble里由于getValueAt(int r, int c)严重影响画面速度是什么原因

热度:544   发布时间:2016-04-23 20:04:34.0
JTble里因为getValueAt(int r, int c)严重影响画面速度是什么原因?
我写了一个网吧的订单管理的页面,JTable用于显示从MySQL里Select的数据,共11列,后3列为按扭,前9列数据,之前测试的时候数据少没发现,今天发现40几条记录的时候是奇卡无比,JTable是放在JScrollPane里的,40多条记录的时候,刚好可以滑动,滑动的时候慢哭了
一点点的查,发现是表格模型的getValueAt出了问题

public Object getValueAt(int r, int c) {
if(c==0) return RowData.get(r).getId();
else if (c==1) return RowData.get(r).getSno();
else if (c==2){
if(RowData.get(r).getCreditflg()==0) 
return RowData.get(r).getPrice()+"元";
else
return RowData.get(r).getPrice()+"积分";
}
else if (c==3) return RowData.get(r).getCreatetime();
else if (c==4) {
int t = RowData.get(r).getOrder_status();
if(t==0) return "未受理";
else if (t==1) return "已受理";
else return "已交付";
}else if (c==5){
int t=RowData.get(r).getPay_status();
if(t==0) return "未收款";
else return "已收款";
}else if (c==6){
int t = RowData.get(r).getDelete_status();
if(t==0) return "未取消";
else return "已取消";
}else if(c==7) return TopWin.getUNAME(RowData.get(r).getUid());
else return RowData.get(r).getPs();
}

当我把这个禁掉之后,直接丧心病狂的换成
public Object getValueAt(int r, int c) { return "..";}之后,就完全没这个问题了
上面的RowData时一个ArrayList,奇葩的是,我另外的地方也用了类似的表格模型,也没有卡顿的现象,求问有人碰到过类似的问题么?跪谢呀
如下卡哭


如下完全不卡,功能上没什么区别,只是显示上有区别而已


------解决思路----------------------
你确定你加载完数据了还是卡?你不会在不停地刷新数据吧?