简单介绍下:TabFoler(选项卡)是SWT中带有标签页的容器,CTabFoler是自定义选项卡,可以修改的属性有很多,
例如,
final CTabFoler tabFolder = new CTabFolder(shell,SWT.CLOSE);//表示带有关闭按钮的选项卡
//显示最大化按钮
tabFolder.setMaximizeVisible(true);
//显示最小化按钮
tabFolder.setMinimizeVisible(true);
下面说重点,虽然显示了最大化和最小化按钮,但因为没有任何事件处理,所以单击两个按钮不会有任何反应,所以从网上搜索了下两个按钮的事件处理方法,所有的答案都是这个:
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直接放在Shell上的最简单的布局情况。这段代码在我的程序里不起任何反应
所以觉得很有必要跟大家分享下我的方法:
tabFolder.addCTabFolder2Listener(new CTabFolder2Adapter() {
// 当单击最小化按钮时触发的事件
public void minimize(CTabFolderEvent event) {
// 设置选项卡的状态为最小化,选项卡的状态决定显示在右上角的窗口按钮
folder2.setMinimized(true);
//改变选项卡的布局,呈现最小化状态
sashForm1.setMaximizedControl(middleCmp1);
shell.layout(true);
}
// 当单击最大化按钮时触发的事件
public void maximize(CTabFolderEvent event) {
folder2.setMaximized(true);
sashForm1.setMaximizedControl(middleCmp2);
shell.layout(true);
}
// 当单击还原按钮时触发的事件
public void restore(CTabFolderEvent event) {
folder2.setMinimized(false);
folder2.setMaximized(false);
sashForm1.setMaximizedControl(null);
shell.layout(true);
}
});
关键在sashForm1.setMaximizedControl(middleCmp2);
这里sashForm1将窗口分为了middleCmp1和middleCmp2,其中tabFolder放在了middleCmp2上,请注意这里的包含关系。
当单击最大化按钮时,通过setMaximizedControl()方法将使middleCmp2占据了原来middleCmp2和middleCmp1分割的窗口,即实现了最大化。
最后单击最小化按钮后,你会发现tabFolder的窗口不见了,==!其实我觉得单击最小化时可以再显示一个新的小的窗口来达到效果,这请读者自己去实现吧!
分享到:
相关推荐
SWT原生按钮不够美观,本案例实现自定义圆形按钮,代码可直接下载使用。
swt table 实现换行
SWT的自动化测试框架
非常好用的java swing拖拽插件,可以快速方便的开发Java桌面应用程序。
本计算器基于SWT界面,带加减乘除功能,可键盘输入可鼠标点击输入,支持括号运算。
Java使用SWT技术实现跳棋游戏,若有SWT编程基础,那最好了,新手可能看代码有些难度哦。
SWT.zip SWT 图形化 各种jar
SWT实现的剪贴板查看器 <br>剪贴板查看器 v1.0 作者:talent_marquis | 甜菜侯爵 Email:talent_marquis@163.com<br><br>实现功能 ~实时监控剪贴板内容(仅限文本内容),并动态捕捉 ~可自行设置...
利用SWT算法实现,c++编写,可用于图像文字提取
SWT无边框窗体实现鼠标拖动移动,并添加右键菜单关闭功能
基于SWT的视频播放器,具备视频打开视频功能
Java使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的小游戏.zipJava使用SWT JFreeChart控件实现的...
用 SWT 来显示 日历控件 源码 很实用
SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置 SWT配置
使用swt做前台界面,利用web servers技术实现全国各地天气查询。
SWT 无疑是迄今写图形化界面最好的工具了,这个是在eclipse工具下写的SWT例子,希望和大家一起进步,项目中如果要使用SWT的可以学习一下 :>
SWT 3.0 开始引入了 Tray,可以在系统栏放置你的程序图标了 本程序实现的功能有四: * 1. 点击窗口的最小化或关闭按钮都是隐藏窗口--任务栏里不显示,不退出程序 * 2. 窗口隐藏时,任务栏无图标,系统栏有图标;...
Java swt 实现的文本框 自动匹配数据 演示以及源代码 Java swt 实现的文本框 自动匹配数据 演示以及源代码 Java swt 实现的文本框 自动匹配数据 演示以及源代码
Java swt 可视化编程常用插件