• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    eclipse-把TableViewer中的數據排序

    怎么把eclipse中的TableViewer中的數據排序呢?點擊列表頭,讓此中的數據按照升序或者降序擺列。下面一步一步怎么實現排序方式,我寫的經驗對你進修java有幫忙的話,給我投票、點贊或者保藏!

    http://v.youku.com/v_show/id_XMzk2ODI2NDcwMA==.html

    0中控件怎么具有編纂功能

    1中實現過濾數據

    0利用增添刪除一行數據

    東西/原料

    • eclipse mars 2

    方式/步調

    1. 1

      打開這個文件vpshangpinxinxi.java,增添擔當ViewerSorter的排序類。

    2. 2

      java中這個“compareTo”函數怎么利用,下面將利用這個函數比力兩個數值的巨細。當前數值年夜于比力數值的話返回1,當前數值等于比力數值的話返回0,當前數值小于比力數值的話返回-1。

      Intager  a=8;

      a.compareTo(2);//返回1

      a.compareTo(8);  //返回0

      a.compareTo(10);//返回-1

    3. 3

      擔當ViewerSorter的排序類,此中重寫這個compare這方式,把當前列的數值兩個比力,返回int值(1年夜于,0等于,-1小于)。寫好這個比力方式java系統主動挪用。在排序類每一個表中的列為一個整形數值,正數為升序,負數為降序(例如:1列是升序,-1列是降序)。

      public class shujupaixu extends ViewerSorter {

      private int lx;              //列是升序或者降序 例如:lx=fenlei;  lx=-fenlei;

      private static final int fenlei=1;              //  分類列界說常數變量1

      private static final int mingcheng=2;

      private static final int jiage=3;

      private static final int hyjiage=4;

      public shujupaixu(int lx){

      this.lx=lx;

      }

      public int compare(Viewer viewer, Object e1, Object e2) {

      Shangpinxinxi sp1=(Shangpinxinxi)e1;

      Shangpinxinxi sp2=(Shangpinxinxi)e2;

      switch(lx){

      case fenlei:{

      String sz1=sp1.getfenlei();

      String sz2=sp2.getfenlei();

      return sz1.compareTo(sz2);

      }

      case -fenlei:{

      String sz1=sp1.getfenlei();

      String sz2=sp2.getfenlei();

      return sz2.compareTo(sz1);

      }

      case mingcheng:{

      String sz1=sp1.getmingcheng();

      String sz2=sp2.getmingcheng();

      return sz1.compareTo(sz2);

      }

      case -mingcheng:{

      String sz1=sp1.getmingcheng();

      String sz2=sp2.getmingcheng();

      return sz2.compareTo(sz1);

      }

      case jiage:{

      Float sz1=sp1.getjiage();

      Float sz2=sp2.getjiage();

      return sz1.compareTo(sz2);

      }

      case -jiage:{

      Float sz1=sp1.getjiage();

      Float sz2=sp2.getjiage();

      return sz2.compareTo(sz1);

      }

      case hyjiage:{

      Float sz1=sp1.gethyjiage();

      Float sz2=sp2.gethyjiage();

      return sz1.compareTo(sz2);

      }

      case -hyjiage:{

      Float sz1=sp1.gethyjiage();

      Float sz2=sp2.gethyjiage();

      return sz2.compareTo(sz1);

      }

      }

      return 0;

      }

      }

    4. 4

      選擇排序的列表頭,增添列表頭的監督事務widgetSelected,只要點擊列表頭就促發事務。

    5. 5

      java的前提選擇 a?b:c,下面用這個前提初始化排序類。

      若是lx=true時  返回shujupaixu.fenlei這個數據,暗示這個列是升序序列

      若是lx=false時 返回-shujupaixu.fenlei這個數據,暗示這個列是降序序列

      lx?shujupaixu.fenlei:-shujupaixu.fenlei

      下圖是名稱列

    6. 6

      在監督事務中界說布爾量初始化為true,是暗示升序的狀況,反之是降序的狀況,事務在升序和降序瓜代運行的。

      tblclmnNewColumn.addSelectionListener(new SelectionAdapter() {

      boolean lx=true; 

      @Override

      public void widgetSelected(SelectionEvent e) {

      //設置排序

      tv.setSorter(new shujupaixu(lx?shujupaixu.fenlei:-shujupaixu.fenlei));

      lx=!lx;  

      }

      });

    7. 7

      運行項目,促發列表頭的監督事務,TableViewer中的數據在升序和降序排序數據。

    • 發表于 2018-12-19 00:00
    • 閱讀 ( 749 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆