`

SWT的CTabFoler最小化,还原,最大化按钮实现

阅读更多

简单介绍下: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原生按钮不够美观,本案例实现自定义圆形按钮,代码可直接下载使用。

    SWT可视化插件

    SWT的设计目标是提供一个高效、本地化的GUI工具包,能够利用操作系统提供的原生控件,从而让Java应用程序具有与本地图形库相同的速度和外观。与Java Swing不同,SWT在性能和用户体验方面往往更胜一筹,因为它直接与...

    SWT的自动化测试框架

    **SWT自动化测试框架详解** SWT(Standard Widget Toolkit)是由Eclipse基金会开发的一个开源GUI(图形用户界面)工具包,用于构建Java应用程序。它提供了丰富的控件和API,使得开发者能够创建与操作系统本地风格...

    SWT界面化计算器

    在这个名为"四则运算计算器SWT版"的项目中,我们主要讨论的是如何利用SWT来实现一个具有基本四则运算(加、减、乘、除)以及括号运算功能的计算器应用。 首先,我们需要了解SWT的核心概念。SWT是基于操作系统原生的...

    swt table 实现换行

    根据提供的文件信息,可以看出本文主要讨论的是如何在 SWT (Standard Widget Toolkit) 的 Table 控件中实现文本换行的功能。SWT 是一个用于开发基于 Java 的桌面应用程序的工具包,它提供了丰富的用户界面组件来帮助...

    SWT JFace 按键、事件、监听

    - **SWT.Deiconify**:窗口不是最小化时 - **SWT.Dispose**:释放资源时 - **SWT.DragDetect**:拖动控件时 - **SWT.Expand**:展开树节点时 - **SWT.FocusIn**:控件获得焦点时 - **SWT.FocusOut**:控件失去焦点时...

    使用 SWT 写图形化界面的例子(eclipse)

    本教程将通过一个在Eclipse环境下实现的SWT实例,帮助你理解和掌握如何利用SWT创建图形化界面。 首先,我们需要了解SWT的基本元素。SWT包含了一系列的控件,如按钮(Button)、文本框(Text)、标签(Label)、表格...

    SWT视频播放器

    这个"SWT视频播放器"项目显然是一款利用SWT库来实现的视频播放软件,它具有基本的视频播放功能,能够加载并播放视频文件。 在深入探讨SWT视频播放器的相关知识点之前,我们先来了解一下SWT本身。SWT是Java中替代AWT...

    swt实现天气预报查询

    在实现过程中,首先需要在SWT界面设计一个用户友好的交互界面,这可能包括输入框让用户输入城市名,按钮触发查询操作,以及结果显示区展示天气信息。例如,可以使用Label或Text组件显示城市名,Label或Table组件展示...

    swt java可视化编程插件

    使用SWT进行Java可视化编程,开发者可以访问一系列控件,如按钮、文本框、列表、树视图等,同时可以处理各种事件,如按钮点击、窗口关闭等。SWT的控件直接映射到操作系统级别的控件,这意味着它们可以更好地利用系统...

    swt-64.rar_64位swt_64的SWT_SWT64_swt.jar 64位_swt64位

    SWT的设计目标是提供一个与平台相关的、高效的GUI库,它通过直接调用操作系统API来实现,而不是像Java Swing那样依赖Java抽象窗口工具包(AWT)和Java 2D。这种设计使得SWT应用程序在性能上通常优于Swing,并且可以...

    SWT.zip 图形化

    SWT的设计目标是提供高效、本地化的用户界面,使应用程序看起来和感觉上更接近操作系统原生应用。 在“SWT.zip 图形化”这个主题中,我们可以深入探讨以下几个关键知识点: 1. **SWT组件**:SWT提供了各种组件,如...

    Java使用SWT技术实现跳棋游戏.rar

    Java使用SWT(Standard Widget Toolkit)技术来实现的跳棋游戏是一个典型的图形用户界面(GUI)编程项目。SWT是Eclipse基金会维护的一个开源库,它提供了与操作系统原生控件紧密集成的Java GUI组件,使得开发出的...

    SWT控件

    SWT控件是构建GUI的基本元素,它们包括按钮、文本框、列表、树、表格等。这些控件与操作系统底层紧密结合,提供高度的响应性和原生的外观。例如,`ListViewer`是SWT中用于显示和操作列表数据的控件,它可以用来展示...

    SWT实现文字区域提取

    在C++中实现SWT,通常涉及以下步骤: 1. **预处理**:首先,对输入图像进行预处理,包括灰度化、二值化和去噪,以简化图像并消除可能干扰文字检测的因素。 2. **边缘检测**:使用Canny、Sobel或其他边缘检测算法找...

    swt实现的日历附带说明使用

    在描述中提到的"里面有说明和使用",这意味着解压缩后的文件可能包含了一个JDatePicker的示例或者教程,它可能是一个Java源代码文件,展示了如何在SWT环境中实例化并使用JDatePicker。通常,这样的示例会涵盖以下几...

    Java swt Designer的可视化开发工具研究

    Java SWT Designer是一款强大的图形用户界面(GUI)设计工具,它为开发者提供了可视化设计Java应用程序界面的能力,特别是基于SWT(Standard Widget Toolkit)的程序。SWT是Java平台上的一个开源库,它允许开发者...

    SWT源码 swt.jar

    SWT(Standard Widget Toolkit)是Eclipse项目的一个重要组成部分,它提供了一套用于构建图形用户界面(GUI)的API,与Java Swing不同,SWT基于操作系统原生的UI组件,因此能够实现更好的性能和与操作系统的集成。...

    使用SWT实现流程编辑器画板

    本项目利用SWT(Standard Widget Toolkit)库来实现一个流程编辑器画板,提供了添加、删除节点以及节点拖动的功能,其界面设计灵感来源于xiorkflow。下面我们将详细探讨SWT库及其在实现流程编辑器中的应用。 首先,...

    俄罗斯方块 eclipse+swt 实现

    《使用Eclipse与SWT实现俄罗斯方块游戏详解》 在计算机编程领域,经典的游戏往往被用来作为学习新技能的示例,其中“俄罗斯方块”便是常见的选择。本项目以“俄罗斯方块”为载体,通过Eclipse集成开发环境(IDE)与...

Global site tag (gtag.js) - Google Analytics