SWT自定义选项卡CTabFolder

SWT自定义选项卡CTabFolder

学习了:http://blog.csdn.net/dreajay/article/details/17391731

package com.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabFolder2Adapter;
import org.eclipse.swt.custom.CTabFolderEvent;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class Test02 {
    public static void main(String[] args) {
         final Display display = Display.getDefault();
         final Shell shell = new Shell();
         shell.setSize(296, 255);
         shell.setText("CTabFolder 练习");
         shell.setLayout(new GridLayout());
         //   

         shell.open();   

         final CTabFolder tabFolder = new CTabFolder(shell, SWT.NONE|SWT.CLOSE| SWT.BORDER);
         tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {
             public void minimize(CTabFolderEvent event) {
                     tabFolder.setMinimized(true);
                     tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
                     shell.layout(true);//刷新布局
             }
             public void maximize(CTabFolderEvent event) {
                     tabFolder.setMaximized(true);
                     tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
                     shell.layout(true);
             }
             public void restore(CTabFolderEvent event) {
                     tabFolder.setMinimized(false);
                     tabFolder.setMaximized(false);
                     tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
                     shell.layout(true);
             }
         });
         //tabFolder.setBounds(0, 0, 283, 211);
         tabFolder.setTabHeight(20);
         tabFolder.marginHeight = 5;
         tabFolder.marginWidth = 5;
         tabFolder.setMaximizeVisible(true);
         tabFolder.setMinimizeVisible(true);
         tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
         //下面两个是设置固定的背景色和前景色
//         tabFolder.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
//         tabFolder.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
         //下面是设置渐变色
//         Color[] color=new Color[4];
//         color[0]=display.getSystemColor(SWT.COLOR_DARK_BLUE);
//         color[1]=display.getSystemColor(SWT.COLOR_BLUE);
//         color[2]=display.getSystemColor(SWT.COLOR_DARK_GRAY);
//         color[3]=display.getSystemColor(SWT.COLOR_WHITE);
//         int[] intArray=new int[]{25,45,100};
//         tabFolder.setSelectionBackground(color, intArray);
         //这是设置了背景颜色,但是如果同时设置了背景图片的话以背景图片优先
         tabFolder.setSimple(false);//设置圆角
//         tabFolder.setUnselectedCloseVisible(true);
         for (int i = 1; i < 4; i++) {
             CTabItem item = new CTabItem(tabFolder, SWT.None|SWT.MULTI|SWT.V_SCROLL);
             item.setText("选项卡" + i);
             Text t = new Text(tabFolder, SWT.None|SWT.MULTI|SWT.V_SCROLL|SWT.H_SCROLL|SWT.WRAP);
             t.setText("这是选项卡可以控制的文字" + i+"\n\n世界第一等\n\n一路顺风");
             item.setControl(t);   

         }
         Image image=new Image(display,"D:\\label.jpg");
         shell.setImage(image);
         shell.setSize(300, 200);
         shell.layout();
         while (!shell.isDisposed()) {
             if (!display.readAndDispatch())
                 display.sleep();
         }
    }
}
时间: 2024-12-16 01:15:35

SWT自定义选项卡CTabFolder的相关文章

iOS 自定义选项卡-CYLTabBarController

正常的选项卡流程 cocoapods就不说了 创建一个CYLTabBarControllerConfig类 #import <Foundation/Foundation.h> #import "CYLTabBarController.h" @interface CYLTabBarControllerConfig : NSObject @property (nonatomic, readonly, strong) CYLTabBarController *tabBarCont

Excel技巧:自定义选项卡

Excel不仅可以自己创建选项卡和组,还可以重命名或更改内置选项卡和组的顺序.直接说可能很难理解,下面我直接演示效果吧. 看红色的选框,大家一看图片就知道我要表达什么意思了吧?我是怎么操作的呢?请大家看下面的gif动画. 是不是很简单?不过前提是你打开[Excel选项]对话框,打开[Excel选项]对话框步骤如下图所示. 原文地址:https://www.cnblogs.com/haigeoffice/p/8575952.html

gef GraphicalEditorWithFlyoutPalette下实现多页编辑器

做一个实现多页编辑器的功能,eclipse本身提供了支持多页编辑器的编辑类MultiPageEditorpart跟FormEditor两个类来支持多页,但是目前项目用了GraphicalEditorWithFlyoutPalette,所以无法用这两个,所以才用了一个巧办法:利用swt的自定义选项卡CTabFolder类支持多页. 上个图: 其实就是在@Override public void createPartControl(Composite parent)这个方法里做了下小操作 其中的Sr

swt,jface,rcp

//swt-jface-rcp,基本结构:display类,shell类,组件:widget窗口控件,control控件,composites面板,button,label,text文本框,list列表框,combo组合框,面板窗口类:composite面板类,group分组框,ctabFolder自定义选项卡,sashForm分割窗框,CBanner自定义分割框,ScrolledComposite滚动面板.布局管理器:FillLayout充满式布局,RowLayout行列式布局,GridLay

可视化(番外篇)——SWT总结

本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可视化环境搭建(SWT Designer): (1).首先下载SWT Designer插件包SWT Designer 6.9.5 for Eclipse.rar: (2).将解压好的插件包extplugins\swt\eclipse下的features和plugins导入Myeclipse的dropi

选项卡导航开发viewpager + SlidingTabsLayout及SlidingTabsLayout的用法

从http://developer.android.com/intl/zh-cn/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html下载SlidingTabsLayout的样例,主要类是:SlidingTabsLayout .SlidingTabStrip,将这两个类复制到项目中. SlidingTabsLayout的用法: 1. SlidingTabsLayout:对导航栏设置属性

VSTO之旅系列(三):自定义Excel UI

原文:VSTO之旅系列(三):自定义Excel UI 本专题概要 引言 自定义任务窗体(Task Pane) 自定义选项卡,即Ribbon 自定义上下文菜单 小结 引言 在上一个专题中为大家介绍如何创建Excel的解决方案,相信大家通过从上面一个专题之后了解了Excel的对象模型,以及Office两种解决方案的,看完上一个专题之后,肯定很多朋友想为Excel自定义属于自己的UI界面,例如,有这样的一些疑问——是否可以使用VSTO来自定义选项卡呢? 是否可以自定义上下文菜单的呢?如果你也有这些疑问

自定义Access2007及以上版本的功能区

先上一个实例截图,增强阅读博文的兴趣: 功能区是新的 Microsoft Office Fluent 用户界面的一个组件,它是一个横跨程序窗口顶部的条形带,其中包含多组命令.Office Fluent 用户界面是 Microsoft Office Access 2007 中存放各个命令的单一位置,同时也是 Access 早期版本中的菜单和工具栏的主要替代部分. 在开始使用 Office Access 2007 构建更高级的应用程序时,您可能会决定自定义 Office Fluent 功能区,以提高

可视化(番外篇)

本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可视化环境搭建(SWT Designer): (1).首先下载SWT Designer插件包SWT Designer 6.9.5 for Eclipse.rar: (2).将解压好的插件包extplugins\swt\eclipse下的features和plugins导入Myeclipse的dropi