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

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. ArchLinux出现ACPI ERROR的解决方法

    ArchLinux关机.重启时出现ACPI错误: ACPI Error:Method parse/execution failed \_SB.PCI0.PGON,AE_AML_LOOP_TIMEOUT ...

  2. SparkSql初级编程实践

    1.Spark SQL 基本操作将下列 JSON 格式数据复制到 Linux 系统中,并保存命名为 employee.json.{ "id":1 , "name" ...

  3. SM32 USART与USB接收不定数据方法,标准库、HAL库都适用

    很多时候,我们使用串口或USB接收数据时,往往不知道PC端会发多长的数据下来, 为了解决这个不定数据接收问题,在此各提供一个解决思路. 串口数据不定接收: 由于STM32单片机带IDLE中断,所以利用 ...

  4. HDU 4302 Contest 1

    维护两个优先队列即可.要注意,当出现蛋糕的位置刚好在狗的位置时,存在右边. 注意输出大小写... #include <iostream> #include <queue> #i ...

  5. [React] Integration test a React component that consumes a Render Prop

    In this lesson, I use Enzyme and Jest's Snapshot functionality to write an integration test for a co ...

  6. sqlite学习笔记11:C语言中使用sqlite之删除记录

    最后一节,这里记录下怎样删除数据. 前面全部的代码都继承在这里了,在Ubuntu14.04和Mac10.9上亲測通过. #include <stdio.h> #include <st ...

  7. How to start/stop DB instance of Oracle under Linux

    All below actions should be executed with "oracle" user account 1. Check the status of lis ...

  8. Popupwindow 显示, 其它背景变暗。 并加上点击事件 ~ (用于记录)

    public class MainActivity extends Activity implements OnClickListener { protected int mScreenWidth; ...

  9. C++字符串操作笔试题第二波

    //1.字符串替换空格:请实现一个函数,把字符串中的每一个空格替换成"%20". //比如输入"we are happy.".则输出"we%20are ...

  10. CoreData 从入门到精通(六)模型版本和数据迁移

    前面几篇文章中讲的所有内容,都是在同一个模型版本上进行操作的.但在真实开发中,基本上不会一直停留在一个版本上,因为需求是不断变化的,说不定什么时候就需要往模型里添加新的字段,添加新的模型,甚至是大规模 ...