SWT:仿Eclipse選項卡

來源:互聯網
上載者:User

public static void showEcliplseTab(final Shell shell)
 {
  Image image = new Image(shell.getDisplay(), "D:\\Program Files\\eclipseRcp\\plugins\\org.eclipse.platform.source_4.2.1.v201209141800\\eclipse32.png");
  shell.setText("仿Eclipse編輯區的選項卡");
  //建立自訂選項卡對象
  final CTabFolder folder = new CTabFolder(shell, SWT.BORDER);
  //設定選項卡的布局,通過布局的設定呈現出最大化和最小化的外觀
  folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
  //設定複雜的選項卡,也就是帶有圓角的選項卡標籤
  folder.setSimple(false);
  //設定未選中標籤,表徵圖和“關閉”按鈕的狀態
  folder.setUnselectedImageVisible(true);
  
  //設定前景色彩和背景色
  folder.setSelectionForeground(shell.getDisplay().getSystemColor(SWT.COLOR_WHITE));
  folder.setSelectionBackground(shell.getDisplay().getSystemColor(SWT.COLOR_BLUE));
  //顯示"最大化"和"最小化"按鈕
  folder.setMaximized(true);
  folder.setMaximizeVisible(true);
  folder.setMinimized(true);
  folder.setMinimizeVisible(true);
  
  //建立選項卡標籤對象
  for (int i = 1; i < 5; i++)
  {
   CTabItem item = new CTabItem(folder, SWT.CLOSE);
   item.setText("選項卡" + i);
   item.setImage(image);
   //每個選項卡中放置一個Text文字框
   Text text = new Text(folder, SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
   //文字框中的文字帶有\n表示,顯示時換到下一行
   text.setText("這是第" + i + "頁:\n該選項卡仿照Eclipse設計\n最大化和最小化都可以使用");
   item.setControl(text);
  }
  
  //註冊選項卡事件
  folder.addCTabFolder2Listener(new CTabFolder2Adapter(){
   //當單擊"最小化"按鈕時觸發的事件
   public void minimize(CTabFolderEvent event){
    //設定選項卡的狀態為最小化,選項卡的狀態決定顯示在右上方的視窗按鈕,
    folder.setMinimized(true);
    //改變選項卡的布局,呈現最小化狀態
    folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    //重新整理布局,否則重新設定的布局將不起作用
    shell.layout(true);
   }
   
   //當單元擊“最大化”按鈕時觸發的事件
   public void maximize(CTabFolderEvent event){
    folder.setMaximized(true);
    folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    shell.layout(true);
   }
   
   //當單擊"還原"按鈕時觸發的事件
   public void restore(CTabFolderEvent event)
   {
    folder.setMinimized(false);
    folder.setMaximized(false);
    folder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    shell.layout(true);
   }
  });
 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.