实现SWT(JFace)里的表格隔行换色功能

原创 2006年06月15日 22:24:00
1,在使用TableViewer时,要实现隔列换色是比较容易的,只要在标签提供器里加上表格的颜色提供器的实现就可以,代码也很简单.如下:

public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
    private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
    private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
    .....

    public Color getForeground(Object element, int columnIndex) {
        return force[columnIndex%2];
    }

   
    public Color getBackground(Object element, int columnIndex) {
        return bg[columnIndex%2];
    }
}

bg是背景色,分两种,force是前景色,也是两种,分别对应,想换成其它的颜色,修改两个定义部分就可以了.

2,但要实现隔行换色就比较麻烦些了,不过还是可以实现,实现原理也很简单,就是记录上一次的对象,与本次对象如果不同就换颜色,否则一直使用当前颜色.代码如下:

public class XXXXLableProvider implements ITableLabelProvider, ITableColorProvider {
    private Color[] bg = new Color[]{new Color(null, 255,255,255), new Color(null, 247,247,240)};
    private Color[] force = new Color[]{new Color(null, 0,0,0), new Color(null, 0,0,0)};
    private Object current = null;
    private int currentColor = 0;
    ......
    public Color getForeground(Object element, int columnIndex) {
        return force[currentColor];
    }


    public Color getBackground(Object element, int columnIndex) {
        if (current != element) {
            currentColor = 1 - currentColor;
            current = element;
        }
        return bg[currentColor];
    }
}

颜色也是和上面一样,不过这样做出来的隔行换色毕竟还不是SWT表格本身支持的,如果表格行没有充满,在后面看到的还是表格的背景色(默认白色)

html中用js实现的表格隔行换色

写的时候把自己的表//写的时候把自己的表的table加上id="tbl" 代码如下: 表格隔行换色 window...
  • qq_37796017
  • qq_37796017
  • 2017年09月16日 14:12
  • 392

一天搞定jQuery(二)——使用jQuery实现表格的隔行换色

还记得之前我使用JavaScript来实现表格的隔行换色效果吗?如果读者初次翻阅本文,可记得看看教你一天玩转JavaScript(六)——使用JavaScript完成后台数据展示表格的隔行换色!现在我...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2017年05月10日 20:52
  • 807

js实现隔行换色

http://www.w3.org/TR/html4/strict.dtd">     js实现隔行换色---阿会楠练习作品(为我所写,非我所想)     window.onload = functi...
  • taokai
  • taokai
  • 2008年01月22日 15:59
  • 363

css 表格隔行换色

  摘自:   http://www.blueidea.com/bbs/NewsDetail.asp?GroupName=Dreamweaver+%26+Javascript%D7%A8...
  • zhuche110
  • zhuche110
  • 2008年05月12日 19:47
  • 1834

smarty中使用实现隔行变色

idnamenickName {foreach from = $hero item=singhero}    {$singhero.id}    {$singhero.name}   ...
  • zunguitiancheng
  • zunguitiancheng
  • 2014年05月17日 21:57
  • 345

用PHP和JS分别实现隔行换色

1.PHP实现隔行换色
  • qq_30292863
  • qq_30292863
  • 2015年12月01日 16:20
  • 995

JSP简单隔行变色和日期格式化

以前好像在找,都没找到简单点的,所以后面就自己写了一个,感觉超级简单又好理解,分享给大家...
  • Jerome_s
  • Jerome_s
  • 2014年05月19日 12:49
  • 3519

用JQuery实现表格隔行换颜色

最近在学习Jquery,其实很多论坛中都有一个特点就是每张贴都是隔行换颜色的,相信这点大家可能发现。那么怎样实现这种功能呢。方法有3种:     方法一:使用CSS样式,定义两个类的样式,分别使用到...
  • suntanyong88
  • suntanyong88
  • 2011年09月20日 13:30
  • 10279

CSS样式定义table隔行背景颜色显示不一样(IE8及以上,其他浏览器不支持)

IE的官方blog中看到了这篇文章--《Ending Expressions》。文章指出在IE8的标准模式下,将不再对CSS expression进行支持 定义   IE5及其以后版本支持在CSS中使...
  • dongzhiquan
  • dongzhiquan
  • 2009年12月08日 23:04
  • 2883

利用for循环实现的隔行变色

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> 无标题文档...
  • suxiaxuhuanhuan
  • suxiaxuhuanhuan
  • 2012年02月27日 18:05
  • 669
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现SWT(JFace)里的表格隔行换色功能
举报原因:
原因补充:

(最多只允许输入30个字)