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

📄 sortingtablemodel.java

📁 jawe的最新版本,基于Java的图形化工作流编辑器。图形化工作流编辑器 。使用JAVA语言开发
💻 JAVA
字号:
package org.enhydra.jawe.base.panel.panels.tablesorting;import java.util.Collections;import java.util.Comparator;import java.util.Vector;import javax.swing.table.DefaultTableModel;import org.enhydra.shark.xpdl.XMLCollection;import org.enhydra.shark.xpdl.XMLCollectionElement;import org.enhydra.shark.xpdl.XMLElement;public class SortingTableModel extends DefaultTableModel {   XMLCollection owner;   public SortingTableModel(XMLCollection c,Vector data, Vector names) {      super(data, names);      this.owner=c;   }   public void sortByColumn(int col, boolean ascending) {      Vector dv=getDataVector();      Vector v=new Vector(dv);      int vs=v.size();      for (int i=vs-1; i>=0; i--) {         XMLElement el=(XMLElement)((Vector)v.elementAt(i)).elementAt(0);         if (el instanceof XMLCollectionElement) {            XMLCollectionElement cel=(XMLCollectionElement)el;            XMLCollection celOwner=(XMLCollection)cel.getParent();            if (celOwner==null || celOwner!=owner) {               v.remove(i);            }         }      }      vs=v.size();      if (vs>0) {         Collections.sort(v,new ColumnSortingComparator(col, ascending));         for (int i=0; i<vs; i++) {            dv.set(i,v.get(i));         }      }   }   public Class getColumnClass(int c) {      return getValueAt(0, c).getClass();   }   static class ColumnSortingComparator implements Comparator {      protected int index;      protected boolean ascending;      public ColumnSortingComparator(int index, boolean ascending) {         this.index = index;         this.ascending = ascending;      }      public int compare(Object first, Object second) {         if (first instanceof Vector && second instanceof Vector) {            try {               String str1 = ((Vector)first).elementAt(index).toString();               String str2 = ((Vector)second).elementAt(index).toString();               if (ascending) {                  return str1.compareTo(str2);               }               return str2.compareTo(str1);            } catch (Exception ex) {               // exception can happen if there's no value in sorted column            }         }         return 1;      }   }}

⌨️ 快捷键说明

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