zoukankan      html  css  js  c++  java
  • SWT的TableVierer的使用三(数据筛选和着色)

    如果我们想根据某一列来过滤记录,如何实现呢?很简单,定义一个过滤器filter。这里只演示定义一个过滤器的情况。
    现实中你可以定义多个灵活的过滤器,通过替换过滤器来实现各种各样的过滤。
    一、过滤器代码:

    import org.eclipse.jface.viewers.Viewer;
    import org.eclipse.jface.viewers.ViewerFilter;

    public class MyFilter extends ViewerFilter {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            People p = (People) element;
            return p.getName().startsWith("张1");
        }

    }

    然后在testTableViewer的shell.open前加入这个过滤器

    tableViewer.addFilter(new MyFilter());

    好了,看一下效果


    二、如果我们想凸显某一条记录,想改变一下它的颜色,如果实现呢,简单,只要几句话就可以了。

    Color color = Display.getDefault().getSystemColor(SWT.COLOR_RED);
    table.getItems()[table.getItemCount()-1].setBackground(color);
    table.redraw();

    注意要加在这里:

    效果如下:


    三、这里提一下,使用tabeViewer.setUseHashlookup(true)可以在tableviewer内部为数据记录和tableItem之间的映射创建一个hash表,这样可以加快tableItem的和记录间的查找速度,注意,这条语句必须在setInput之前加入才有效。
    好了,到此tableviewer的基本的东西介绍的差不多了 
    source下载:http://www.blogjava.net/Files/dreamstone/jface-4.rar
    四:在现实的开发中,我们更多的是喜欢把一些简单的类用匿名类或者内部类的方式来实现。像之前例子中每个都单独一个类的情况并不多。
    下边是和前边的source效果等同的source,不过是使用了匿名类和内部类。
    http://www.blogjava.net/Files/dreamstone/jface-5.rar

  • 相关阅读:
    git分支
    git使用
    多人协作
    python初心记录二
    python初心记录一
    Javascript 概念类知识
    想成为前端工程师?希望读完这篇文章能对你有所帮助。
    Egret note
    cocos2d-js 连连看
    PS置入图片之后保留选区方便C图
  • 原文地址:https://www.cnblogs.com/wangjiyuan/p/table3.html
Copyright © 2011-2022 走看看