獨自等待
          那曾經從自己身邊溜走的人……
          posts - 0,comments - 3,trackbacks - 0
              在SWT編程中,用GirdLayout布局好組件時,有時候會碰到這種情況:某些組件可能在運行態時需要根據選項被隱藏/顯示。通常我們會把這組組件放置在同一個Composite中,并設置Composite.setVisible(false)就可以了,但是若該Composite位于GridLayout布局的中間位置,將其隱藏后,仍然會留下空白區,后面的組件并不會收縮上去重新布局,經過試驗找到了一個比較完美的解決辦法,如以下的代碼片段:
                  switch (iIndex) {
                      
          case 0{
                          
          if(grpExpression.getLayoutData() instanceof GridData) {
                              GridData gd 
          = (GridData)grpExpression.getLayoutData();
                              gd.heightHint 
          = -1;
                              grpExpression.setLayoutData(gd);
                              grpExpression.layout(
          true);
                              rootComposit.layout(
          true);
                          }

                          grpObject.setVisible(
          false);
                          
          break;
                      }
           
                      
          case 2{
                          
          if(grpExpression.getLayoutData() instanceof GridData) {
                              GridData gd 
          = (GridData)grpExpression.getLayoutData();
                              gd.heightHint 
          = -22;  //設成非-1的任何小于0的值即可
                              grpExpression.setLayoutData(gd);
                              grpExpression.layout(
          true);
                              rootComposit.layout(
          true);
                          }

                          grpObject.setVisible(
          true);
                          
          break;
                      }

                  }


              上例中grpExpression位于布局中段,grpObject位于布局末尾
          posted on 2008-06-02 10:01 自由 閱讀(1034) 評論(0)  編輯  收藏 所屬分類: SWT

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 五莲县| 新龙县| 军事| 从化市| 始兴县| 奉贤区| 南溪县| 会宁县| 肥城市| 大足县| 马公市| 永宁县| 乳山市| 上高县| 通河县| 钟祥市| 建水县| 资源县| 汉川市| 亳州市| 寿阳县| 刚察县| 织金县| 鹿邑县| 牡丹江市| 葵青区| 来宾市| 政和县| 新晃| 剑河县| 巢湖市| 托克逊县| 合江县| 布尔津县| 临泉县| 瑞安市| 义马市| 百色市| 加查县| 绥江县| 夏河县|