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