編程生活

             :: 首頁 :: 新隨筆 :: 聯(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)航:
           
          主站蜘蛛池模板: 达拉特旗| 密山市| 永定县| 平武县| 西乌| 房山区| 黄冈市| 河池市| 偃师市| 乌苏市| 靖远县| 温宿县| 罗江县| 鄱阳县| 凌海市| 加查县| 沅陵县| 新绛县| 清原| 仙居县| 南投市| 庆云县| 克什克腾旗| 晋城| 乐都县| 无棣县| 新津县| 河西区| 奉新县| 大足县| 鸡泽县| 奉贤区| 百色市| 陇西县| 历史| 彰武县| 尼勒克县| 时尚| 城固县| 芒康县| 桃江县|