简单介绍下: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的设计目标是提供一个高效、本地化的GUI工具包,能够利用操作系统提供的原生控件,从而让Java应用程序具有与本地图形库相同的速度和外观。与Java Swing不同,SWT在性能和用户体验方面往往更胜一筹,因为它直接与...
**SWT自动化测试框架详解** SWT(Standard Widget Toolkit)是由Eclipse基金会开发的一个开源GUI(图形用户界面)工具包,用于构建Java应用程序。它提供了丰富的控件和API,使得开发者能够创建与操作系统本地风格...
在这个名为"四则运算计算器SWT版"的项目中,我们主要讨论的是如何利用SWT来实现一个具有基本四则运算(加、减、乘、除)以及括号运算功能的计算器应用。 首先,我们需要了解SWT的核心概念。SWT是基于操作系统原生的...
根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...
- **SWT.Deiconify**:窗口不是最小化时 - **SWT.Dispose**:释放资源时 - **SWT.DragDetect**:拖动控件时 - **SWT.Expand**:展开树节点时 - **SWT.FocusIn**:控件获得焦点时 - **SWT.FocusOut**:控件失去焦点时...
本教程将通过一个在Eclipse环境下实现的SWT实例,帮助你理解和掌握如何利用SWT创建图形化界面。 首先,我们需要了解SWT的基本元素。SWT包含了一系列的控件,如按钮(Button)、文本框(Text)、标签(Label)、表格...
这个"SWT视频播放器"项目显然是一款利用SWT库来实现的视频播放软件,它具有基本的视频播放功能,能够加载并播放视频文件。 在深入探讨SWT视频播放器的相关知识点之前,我们先来了解一下SWT本身。SWT是Java中替代AWT...
在实现过程中,首先需要在SWT界面设计一个用户友好的交互界面,这可能包括输入框让用户输入城市名,按钮触发查询操作,以及结果显示区展示天气信息。例如,可以使用Label或Text组件显示城市名,Label或Table组件展示...
使用SWT进行Java可视化编程,开发者可以访问一系列控件,如按钮、文本框、列表、树视图等,同时可以处理各种事件,如按钮点击、窗口关闭等。SWT的控件直接映射到操作系统级别的控件,这意味着它们可以更好地利用系统...
SWT的设计目标是提供一个与平台相关的、高效的GUI库,它通过直接调用操作系统API来实现,而不是像Java Swing那样依赖Java抽象窗口工具包(AWT)和Java 2D。这种设计使得SWT应用程序在性能上通常优于Swing,并且可以...
SWT的设计目标是提供高效、本地化的用户界面,使应用程序看起来和感觉上更接近操作系统原生应用。 在“SWT.zip 图形化”这个主题中,我们可以深入探讨以下几个关键知识点: 1. **SWT组件**:SWT提供了各种组件,如...
Java使用SWT(Standard Widget Toolkit)技术来实现的跳棋游戏是一个典型的图形用户界面(GUI)编程项目。SWT是Eclipse基金会维护的一个开源库,它提供了与操作系统原生控件紧密集成的Java GUI组件,使得开发出的...
SWT控件是构建GUI的基本元素,它们包括按钮、文本框、列表、树、表格等。这些控件与操作系统底层紧密结合,提供高度的响应性和原生的外观。例如,`ListViewer`是SWT中用于显示和操作列表数据的控件,它可以用来展示...
在C++中实现SWT,通常涉及以下步骤: 1. **预处理**:首先,对输入图像进行预处理,包括灰度化、二值化和去噪,以简化图像并消除可能干扰文字检测的因素。 2. **边缘检测**:使用Canny、Sobel或其他边缘检测算法找...
在描述中提到的"里面有说明和使用",这意味着解压缩后的文件可能包含了一个JDatePicker的示例或者教程,它可能是一个Java源代码文件,展示了如何在SWT环境中实例化并使用JDatePicker。通常,这样的示例会涵盖以下几...
Java SWT Designer是一款强大的图形用户界面(GUI)设计工具,它为开发者提供了可视化设计Java应用程序界面的能力,特别是基于SWT(Standard Widget Toolkit)的程序。SWT是Java平台上的一个开源库,它允许开发者...
SWT(Standard Widget Toolkit)是Eclipse项目的一个重要组成部分,它提供了一套用于构建图形用户界面(GUI)的API,与Java Swing不同,SWT基于操作系统原生的UI组件,因此能够实现更好的性能和与操作系统的集成。...
本项目利用SWT(Standard Widget Toolkit)库来实现一个流程编辑器画板,提供了添加、删除节点以及节点拖动的功能,其界面设计灵感来源于xiorkflow。下面我们将详细探讨SWT库及其在实现流程编辑器中的应用。 首先,...
《使用Eclipse与SWT实现俄罗斯方块游戏详解》 在计算机编程领域,经典的游戏往往被用来作为学习新技能的示例,其中“俄罗斯方块”便是常见的选择。本项目以“俄罗斯方块”为载体,通过Eclipse集成开发环境(IDE)与...