花開有時

          花開有時,花落有時,來有時,去有時。不撕扯,只關切;不紀念,只牽掛;不感動,只明白;不尋找,只記得。
          隨筆 - 24, 文章 - 0, 評論 - 54, 引用 - 0
          數據加載中……

          如何自定義SWT Table的每一個Cell的height and width

          demonstration code:
          Display display = new Display();
          Shell shell = new Shell(display);
          shell.setBounds(10,10,200,250);
          final Table table = new Table(shell, SWT.NONE);
          table.setBounds(10,10,150,200);
          table.setLinesVisible(true);
          for (int i = 0; i < 5; i++) {
          new TableItem(table, SWT.NONE).setText("item " + i);
          }
          table.addListener(SWT.MeasureItem, new Listener() { 
          public void handleEvent(Event event) { 
          int clientWidth = table.getClientArea().width;
          event.height = event.gc.getFontMetrics().getHeight() * 2; 
          event.width = clientWidth * 2; 
           } 
          });  
          shell.open();
          while (!shell.isDisposed()) {
          if (!display.readAndDispatch()) display.sleep();
          }
          display.dispose();
          

          說明:黑體部分是關鍵,主要是要為table添加一個監聽器并要用到SWT.MeasureItem屬性,如果是在TableView下則需要調用TableView#getTable()方法獲得Table再添加監聽器。
          還需要注意的是:
          1)這個特性可能只在Eclipse3.2以上的版本中才有。
          2)不能對單行(Item)進行height的設置。
          3)如果設置了width,則column的width以它為準。
          參考文章:[[1]]http://www.eclipse.org/articles/Article-CustomDrawingTableAndTreeItems/customDraw.htm#_tb10D

          posted on 2008-02-03 16:26 花開有時 閱讀(2411) 評論(1)  編輯  收藏 所屬分類: Eclipse

          評論

          # re: 如何自定義SWT Table的每一個Cell的height and width  回復  更多評論   

          非常 不錯呀。收藏
          2008-02-17 12:34 | 91cn99
          主站蜘蛛池模板: 当雄县| 策勒县| 柏乡县| 邯郸县| 泽州县| 古丈县| 婺源县| 唐河县| 正定县| 吉林省| 江北区| 苍溪县| 大方县| 英山县| 德兴市| 孙吴县| 朝阳市| 镇安县| 安宁市| 南乐县| 泰顺县| 盐山县| 永胜县| 海门市| 岗巴县| 兴宁市| 获嘉县| 镇赉县| 琼结县| 本溪市| 土默特左旗| 福建省| 怀柔区| 文成县| 阳西县| 炉霍县| 布拖县| 文昌市| 广元市| 资兴市| 万年县|