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);
}
});
}