注意:JTable 渲染器同一列共享

JTable的列渲染器采用的是FlyWeigth模式,今天在写代码的时候,忘记实际数据来源,出现一个问题。原理是因为JTable的渲染器是采用共享模式 所以出现

错误情况

自定义Renderer代码:

/**
* 浮点型渲染器
* @author Administrator
*
*/
public class GroupDoubleRenderer extends DefaultJLabelRenderer {

protected void setValue(JLabel groupRenderer, Object value) {
// TODO Auto-generated method stub 注意此处有存在问题的,如果为空才设置值,会导致下个不为空的列,取之前的值

// 对于同一列都是用同一个GroupDoubleRenderer渲染,只是给出的不同值而已

if(null != value && !value.toString().equals("")){
groupRenderer.setText(value.toString());
}

}

<1>正确数据如下

注意:JTable 渲染器同一列共享_第1张图片


<2>错误情况如下

注意:JTable 渲染器同一列共享_第2张图片



你可能感兴趣的:(jtable)