vjame

          優化代碼是無止境的
          隨筆 - 65, 文章 - 9, 評論 - 26, 引用 - 0
          數據加載中……

          SWT Table的Tableitem多行顯示

          1:Table創建好之后添加如下代碼:
                  Listener paintListener = new Listener() {
                      
          public void handleEvent(Event event) {
                          
          switch(event.type) {        
                              
          case SWT.MeasureItem: {
                                  TableItem item 
          = (TableItem)event.item;
                                  String text 
          = getText(item, event.index);
                                  Point size 
          = event.gc.textExtent(text);
                                  event.width 
          = size.x;
                                  event.height 
          = Math.max(event.height, size.y);
                                  
          break;
                              }
                              
          case SWT.PaintItem: {
                                  TableItem item 
          = (TableItem)event.item;
                                  String text 
          = getText(item, event.index);
                                  Point size 
          = event.gc.textExtent(text);                    
                                  
          int offset2 = event.index == 0 ? Math.max(0, (event.height - size.y) / 2) : 0;
                                  event.gc.drawText(text, event.x, event.y 
          + offset2, true);
                                  
          break;
                              }
                              
          case SWT.EraseItem: {    
                                  event.detail 
          &= ~SWT.FOREGROUND;
                                  
          break;
                              }
                          }
                      }
                      String getText(TableItem item, 
          int column) {
                          
          return item.getText(column);
                      }
                  };
                 table.addListener(SWT.MeasureItem, paintListener);
                 table.addListener(SWT.PaintItem, paintListener);
                 table.addListener(SWT.EraseItem, paintListener);

          2. 換行要自己加個“\n”到字符串中,如
                 TableItem item = new TableItem(table, SWT.NONE, table.getItemCount());
                item.setText(
          "first line" + "\n" + "second line");

          3.如圖所示

          posted on 2009-01-10 09:40 lanjh 閱讀(2673) 評論(0)  編輯  收藏 所屬分類: Java App

          主站蜘蛛池模板: 广平县| 海南省| 长沙县| 平南县| 鹰潭市| 寻乌县| 金堂县| 广饶县| 安义县| 顺平县| 大方县| 北宁市| 象州县| 呼玛县| 安图县| 璧山县| 廉江市| 西乌珠穆沁旗| 梅河口市| 论坛| 临西县| 包头市| 江山市| 宣汉县| 易门县| 潮安县| 湄潭县| 桂平市| 莱州市| 乌鲁木齐县| 个旧市| 灯塔市| 晋宁县| 平阴县| 龙游县| 山东省| 烟台市| 武鸣县| 衡阳市| 丰台区| 皋兰县|