本文主要是介绍注意: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>正确数据如下
<2>错误情况如下
这篇关于注意:JTable 渲染器同一列共享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!