SWT自定义选项卡CTabFolder

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

  1. package com.swt;
  2.  
  3. import org.eclipse.swt.SWT;
  4. import org.eclipse.swt.custom.CTabFolder;
  5. import org.eclipse.swt.custom.CTabFolder2Adapter;
  6. import org.eclipse.swt.custom.CTabFolderEvent;
  7. import org.eclipse.swt.custom.CTabItem;
  8. import org.eclipse.swt.graphics.Color;
  9. import org.eclipse.swt.graphics.Image;
  10. import org.eclipse.swt.layout.GridData;
  11. import org.eclipse.swt.layout.GridLayout;
  12. import org.eclipse.swt.widgets.Display;
  13. import org.eclipse.swt.widgets.Shell;
  14. import org.eclipse.swt.widgets.Text;
  15.  
  16. public class Test02 {
  17. public static void main(String[] args) {
  18. final Display display = Display.getDefault();
  19. final Shell shell = new Shell();
  20. shell.setSize(296, 255);
  21. shell.setText("CTabFolder 练习");
  22. shell.setLayout(new GridLayout());
  23. //
  24.  
  25. shell.open();
  26.  
  27. final CTabFolder tabFolder = new CTabFolder(shell, SWT.NONE|SWT.CLOSE| SWT.BORDER);
  28. tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {
  29. public void minimize(CTabFolderEvent event) {
  30. tabFolder.setMinimized(true);
  31. tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
  32. shell.layout(true);//刷新布局
  33. }
  34. public void maximize(CTabFolderEvent event) {
  35. tabFolder.setMaximized(true);
  36. tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  37. shell.layout(true);
  38. }
  39. public void restore(CTabFolderEvent event) {
  40. tabFolder.setMinimized(false);
  41. tabFolder.setMaximized(false);
  42. tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
  43. shell.layout(true);
  44. }
  45. });
  46. //tabFolder.setBounds(0, 0, 283, 211);
  47. tabFolder.setTabHeight(20);
  48. tabFolder.marginHeight = 5;
  49. tabFolder.marginWidth = 5;
  50. tabFolder.setMaximizeVisible(true);
  51. tabFolder.setMinimizeVisible(true);
  52. tabFolder.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false));
  53. //下面两个是设置固定的背景色和前景色
  54. // tabFolder.setBackground(display.getSystemColor(SWT.COLOR_BLUE));
  55. // tabFolder.setForeground(display.getSystemColor(SWT.COLOR_WHITE));
  56. //下面是设置渐变色
  57. // Color[] color=new Color[4];
  58. // color[0]=display.getSystemColor(SWT.COLOR_DARK_BLUE);
  59. // color[1]=display.getSystemColor(SWT.COLOR_BLUE);
  60. // color[2]=display.getSystemColor(SWT.COLOR_DARK_GRAY);
  61. // color[3]=display.getSystemColor(SWT.COLOR_WHITE);
  62. // int[] intArray=new int[]{25,45,100};
  63. // tabFolder.setSelectionBackground(color, intArray);
  64. //这是设置了背景颜色,但是如果同时设置了背景图片的话以背景图片优先
  65. tabFolder.setSimple(false);//设置圆角
  66. // tabFolder.setUnselectedCloseVisible(true);
  67. for (int i = 1; i < 4; i++) {
  68. CTabItem item = new CTabItem(tabFolder, SWT.None|SWT.MULTI|SWT.V_SCROLL);
  69. item.setText("选项卡" + i);
  70. Text t = new Text(tabFolder, SWT.None|SWT.MULTI|SWT.V_SCROLL|SWT.H_SCROLL|SWT.WRAP);
  71. t.setText("这是选项卡可以控制的文字" + i+"\n\n世界第一等\n\n一路顺风");
  72. item.setControl(t);
  73.  
  74. }
  75. Image image=new Image(display,"D:\\label.jpg");
  76. shell.setImage(image);
  77. shell.setSize(300, 200);
  78. shell.layout();
  79. while (!shell.isDisposed()) {
  80. if (!display.readAndDispatch())
  81. display.sleep();
  82. }
  83. }
  84. }

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

  1. excel快速访问工具栏和自定义选项卡

    自定义选项卡: excel命令选项--自定义功能区--

  2. iOS 自定义选项卡-CYLTabBarController

    正常的选项卡流程 cocoapods就不说了 创建一个CYLTabBarControllerConfig类 #import <Foundation/Foundation.h> #impor ...

  3. angularui 自定义选项卡

    ng-include 选取ng-template <!DOCTYPE html> <html lang="en" ng-app="myApp" ...

  4. ViewPager自定义选项卡

    转自:http://www.open-open.com/lib/view/open1352621601262.html

  5. WPF实现选项卡效果(3)——自定义动态添加的AvalonDock选项卡内容

    原文:WPF实现选项卡效果(3)--自定义动态添加的AvalonDock选项卡内容 简介 在前面一篇文章里面,我们实现了AvalonDock选项卡的动态添加,但是对于选项卡里面的内容,我们并没有实现任 ...

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

    本篇主要介绍如何在SWT下构建一个应用,如何安装SWT Designer并破解已进行SWT的可视化编程,Display以及Shell为何物.有何用,SWT中的常用组件.面板容器以及事件模型等. 1.可 ...

  7. swt,jface,rcp

    //swt-jface-rcp,基本结构:display类,shell类,组件:widget窗口控件,control控件,composites面板,button,label,text文本框,list列 ...

  8. Fragment实现底部选项卡切换效果

    现在很多APP的样式都是底部选项卡做为首页的,实现这样的效果,我们一般有这样几种方式,第一,最屌丝的做法,我直接自定义选项卡视图,通过监听选项卡视图,逻辑控制内容页的切换,这样做的想法一般是反正这几个 ...

  9. 自定义和扩展 SharePoint 2010 Server 功能区

    了解构成 SharePoint 2010 服务器功能区的组件以及如何通过演练两个功能区自定义项方案来自定义功能区. 适用范围: Microsoft SharePoint Foundation 2010 ...

随机推荐

  1. 全面的framebuffer详解

    一.FrameBuffer的原理    FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口.    Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIO ...

  2. DelayQueue延时队列示例

    介绍: DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素.该队列的头部是延迟期满后保存时间最长的Delayed 元素. 使用场景: 缓存系统的设计,缓存中的对象,超过了空闲时间 ...

  3. 06001_NoSQL概述

    1.什么是NoSQL? NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库. 2.关于关系型数据库和nosql数据库 (1)关系型 ...

  4. 利用VisualVM监视远程JVM

    VisualVM介绍 VisualVM是集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC ...

  5. [Unit Testing] Configure the Angular CLI to use the Karma Mocha test reporter

    Every Angular CLI generated project comes already with Karmapreinstalled as well a couple of executa ...

  6. Sping框架中的注解详解

    传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件 ...

  7. CentOS6.3升级GCC到GCC4.8.2

    server上安装的GCC版本号过旧.已经不满足个人使用的版本号需求,故决定对其进行升级操作.由当前版本号3.4.6升级到4.8.2.然受权限制约.仅仅能安装到个人文件夹.因此假设您的server能够 ...

  8. 公布自己的pods到CocoaPods trunk 及问题记录

    这两天准备把之前写的一些小玩意加入到pods库中去,參考了一些资料后进行操作,实际中也遇到了一些问题,记录下来.问题及解决方案在后面. 參考内容转载例如以下: 首先更新了用trunk之后,CocoaP ...

  9. 如何编译dotnet core

    1.git clone源码 2.init-tools.cmd 3. Error: DIA SDK is missing at "C:\Program Files (x86)\Microsof ...

  10. JAVA设计模式之【代理模式】

    代理模式 通过代理对象间接访问 代购 客户端不想或者不能直接访问一个对象,可以通过一个称为代理的第三者来实现间接访问,该方案称为代理模式 角色 抽象主题角色Subject 声明真实主题类与代理类的公共 ...