編程生活

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            113 隨筆 :: 0 文章 :: 18 評論 :: 0 Trackbacks

          剛開始時,是將TWaver的樹和面板放在一個SWT_AWT的Frame中,此時感覺到閃爍,但后來,由于Swing的分隔條太難看,而將TWaver的樹和面板分別放到各自的SWT_AWT的Frame中,此時的閃爍就很歷害,經(jīng)過幾次試驗,將TWaver的TNetwork改成雙緩沖方式,此時操作基本上就沒有閃爍了,但樹則沒辦法,具體代碼如下:

          private void CreateTWaver() {
              GridLayout gridLayout 
          = new GridLayout();
              gridLayout.horizontalSpacing 
          = 0;
              gridLayout.marginWidth 
          = 0;
              gridLayout.marginHeight 
          = 0;
              gridLayout.verticalSpacing 
          = 0;

              
          // 整個工作區(qū)的容器
              container = new SashForm(body, SWT.NONE);
              container.setLayoutData(
          new GridData(GridData.FILL_BOTH));

              
          // 樹形部分
              Composite navigate = new Composite(container, SWT.EMBEDDED | SWT.BORDER);
              navigate.setLayout(gridLayout);
              navigate.setLayoutData(
          new GridData(GridData.FILL_BOTH));

              
          // 操作面板
              Composite workarea = new Composite(container, SWT.EMBEDDED | SWT.NONE);
              workarea.setLayout(gridLayout);
              workarea.setLayoutData(
          new GridData(GridData.FILL_BOTH));

              container.setWeights(
          new int[] 13 });

              
          final Frame netFrame = SWT_AWT.new_Frame(workarea);
              netFrame.setLayout(
          new BorderLayout());

              box 
          = new TDataBox("");

              network 
          = new TNetwork(box);
              network.setName(
          "xxx.network");
              network.setToolbarByName(
          null);
              network.clearMovableFilters();
              network.setDoubleBuffered(
          true);

              network.getCanvas().addMouseListener(
          new MouseAdapter() {
                @Override
                
          public void mouseClicked(final MouseEvent e) {
                  
          if (selectTool == null)
                    
          return;
                  getParent().getDisplay().asyncExec(
          new Runnable() {
                    
          public void run() {
                      executeSelectTool(selectTool, e.getPoint());
                    }

                  }
          );
                }

              }
          );
              
          // 在元素上雙擊時打開對應(yīng)的編輯器
              network.addElementDoubleClickedActionListener(new ActionListener() {
                
          public void actionPerformed(ActionEvent e) {
                  
          if (e.getSource() instanceof Element) {
                    openElementEditor((Element) e.getSource());
                  }

                }

              }
          );
              netFrame.add(network);

              
              
          final Frame treeFrame = SWT_AWT.new_Frame(navigate);
              treeFrame.setLayout(
          new BorderLayout());

              tree 
          = new TTree(box);
              tree.setName(
          "xxx.tree");
              tree.setEnsureVisibleOnSelected(
          true);
              treeFrame.add(tree);
            }
          posted on 2007-10-23 09:45 wilesun 閱讀(741) 評論(2)  編輯  收藏

          評論

          # re: 在Eclipse的RCP中使用TWaver 2007-10-31 16:31 NR
          好東西 保存  回復(fù)  更多評論
            

          # re: 在Eclipse的RCP中使用TWaver 2007-10-31 17:16 游客
          不錯!正好在學(xué)TWaver呢  回復(fù)  更多評論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 治多县| 霍林郭勒市| 通山县| 巫山县| 淮南市| 景德镇市| 会宁县| 通州区| 九寨沟县| 甘泉县| 云梦县| 秦皇岛市| 凉山| 衡阳市| 兰坪| 高安市| 琼中| 濮阳市| 屏东县| 峨边| 黄山市| 定南县| 昭平县| 察哈| 朝阳县| 高淳县| 禹州市| 咸宁市| 崇左市| 江川县| 合山市| 怀集县| 泰安市| 铜鼓县| 吴江市| 天柱县| 广水市| 陵川县| 平塘县| 广州市| 怀来县|