表格列值相同的情况下不显示

客户由于使用的是powerbuilder(以下称为pb)开发的CS架构的应用,用过pb的都知道其数据窗口技术很强大,其中一点就是就是表格列数据下一行与上一行相同时可以通过简单的设置二不进行显示。
当迁移到三层架构时,也要求实现该功能,我们的前端是swing编写的,考虑了一下有两种思路:
第一:在后台返回一个对象列表的时候对其进行处理,逐行判断比较,如果值相同则将值值为null,这样数据填充到表格的时候就不显示了。
第二:返回的对象列表不做处理,在表格上进行处理。这里利用了表格的rendder机制,在此进行判断。如果当前单元格的值与上一行单元格的值相同则不显示。
参考代码如下:
[b] [color=red]if (hiddenRepeatValue){//隐藏重复值判断
if (row>=1){
Object preValue=table.getValueAt(row-1, column);
if (preValue!=null&&value!=null&&preValue.equals(value))
((JLabel)c).setText("");
}
}[/color][/b]
比较这两种方式第一种方式有一定的缺点,就是在表格前端排序的时候会有问题因为部分数据置为null了,当然如果在数据库端排序就没有问题了,第二种方式就相对比较完美了!

附件为两种工具实现的效果图!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值