⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysorter.java

📁 这是我写的一个SWT程序
💻 JAVA
字号:
/**
 * @作者:陈刚
 * @Email:glchengang@yeah.net
 * @Blog:http://blog.csdn.net/glchengang
 */
package jface.tableviewer;

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

//------文件名:MySorter.java-----------
public class MySorter extends ViewerSorter {
    //每列对应一个不同的常量,正数为升序、其相反数为降序
    public static final int ID = 1;

    public static final int NAME = 2;

    //所要排序的列
    private int sortType;

    /**
     * 构造函数。加private表示不能用new MySorter()生成本类对象了
     */
    private MySorter() {
    }

    /**
     * 构造函数。根据不同的列来生成不同的排序对象
     */
    public MySorter(int sortType) {
        this.sortType = sortType;
    }

    /**
     * 最关键的方法:改写继承自ViewerSorter的方法,它的返回值是一个整数 正数,则obj1移到obj2之间 零,则obj1和obj2的位置不动
     * 负数,则obj1移到obj2之后
     */
    public int compare(Viewer viewer, Object obj1, Object obj2) {
        /*
         * 传入两条记录(实体类),然后依列给出它俩的先后顺序。
         */
        PeopleEntity o1 = (PeopleEntity) obj1;
        PeopleEntity o2 = (PeopleEntity) obj2;
        switch (sortType) {
        case ID: {
            Long l1 = o1.getId();
            Long l2 = o2.getId();
            /*
             * compareTo返回值有三个值1,0,-1 “l1”大于“l2”返回1 “l1”等天“l2”返回0 “l1”小于“l2”返回-1
             * 更详细资料请查询JDK帮助文档
             */
            return l1.compareTo(l2);
        }
        case -ID: {
            Long l1 = o1.getId();
            Long l2 = o2.getId();
            return l2.compareTo(l1);
        }
        case NAME: {
            String s1 = o1.getName();
            String s2 = o2.getName();
            return s1.compareTo(s2);
        }
        case -NAME: {
            String s1 = o1.getName();
            String s2 = o2.getName();
            return s2.compareTo(s1);
        }
        }
        return 0;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -