`
lw223
  • 浏览: 99475 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

可折叠的SWT面板

阅读更多

 

一个可折叠的SWT写的面板,点击面板能够显示出隐藏的控件,其中折叠区域的DataTime是日期时间控件,如果想正常显示这个控件的效果,一定要把eclipse换成最新的eclipse3.3,我在官网上看到的最新版是eclipse3.3M6;

SWT-Designer要用SWT-Designer6.0,只有这个版本的SWT-Designer才支持eclipse3.3里面的时间控件。

我在eclipse SWT/Jface核心应用这本书里面看到,作者利用在rcp中利用eclipse表单实现了一个可折叠的面板,书中也提到了SWT可以用eclipse表单,但是没有具体的实现代码,我利用书中内容实现了一个在SWT中应用eclipse表单。

下面是代码: 

package com.lw.swt;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StackLayout;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.layout.grouplayout.GroupLayout;
import org.eclipse.swt.layout.grouplayout.LayoutStyle;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.events.ExpansionAdapter;
import org.eclipse.ui.forms.events.ExpansionEvent;
import org.eclipse.ui.forms.widgets.ExpandableComposite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import org.eclipse.ui.forms.widgets.ScrolledForm;
import org.eclipse.ui.forms.widgets.Section;
import org.eclipse.ui.forms.widgets.TableWrapLayout;

public class NeTest ...{

    
/** *//**
     * Launch the application
     * 
@param args
     
*/

    
public static void main(String[] args) ...{
        
final Display display = Display.getDefault();
        
final Shell shell = new Shell();
        shell.setSize(
500375);
        shell.setText(
"SWT Application");
        shell.setLayout(
new FillLayout());
        
//创建表单对象
        FormToolkit ft = new FormToolkit(shell.getDisplay());
        
//通过表单工具对象创建可滚动的表单对象
        final ScrolledForm form = ft.createScrolledForm(shell);
        
//表单文本
        form.setText("swt表单example");
                                          
//设置表单布局
        form.getBody().setLayout(new TableWrapLayout());            
        
//创建可折叠的面板
        ExpandableComposite ec = ft.createExpandableComposite(form.getBody(), 
                                                                                                          ExpandableComposite.TWISTIE);
        ec.setText(
"可折叠面板ExpandableComposite");
        
//定义字符串
        String txt = "测试";
        
//创建一个标签并显示字符串
        Label lb = ft.createLabel(ec, txt,SWT.WRAP);
        
//将Label作为折叠面板的折叠区域
        ec.setClient(lb);
        
//为折叠面板添加展开 折叠的监听器
        ec.addExpansionListener(new ExpansionAdapter()...{
            
public void expansionStateChanged(ExpansionEvent e )...{
                
//根据部件的新尺寸重新定位和更新滚动条
                form.reflow(true);
            }

        }
);
                        
        
//创建内容区域  样式TWISTIE  显示背景标题TITLE_BAR
        Section st = ft.createSection(form.getBody(), Section.TWISTIE|Section.TITLE_BAR);
        st.setText(
"内容区域Section");
        
//创建一个面板 作为内容折叠区域放置的控件
        Composite cs = ft.createComposite(st);
        cs.setLayout(
new GridLayout());
        Button btt1;
        Button btt2;
        Text text;
        btt1 
= ft.createButton(cs,"系统资料",SWT.TOGGLE | SWT.FLAT | SWT.BORDER);
        btt2 
= ft.createButton(cs,"个人资料", SWT.TOGGLE);
        text 
= ft.createText(cs, txt, SWT.NONE);
        text.setText(
"填写数据");
        st.setClient(cs);        
        
//为折叠面板添加展开 折叠的监听器
        st.addExpansionListener(new ExpansionAdapter()...{
            
public void expansionStateChanged(ExpansionEvent e )...{
                
//根据部件的新尺寸重新定位和更新滚动条
                form.reflow(true);
            }

        }
);
        DateTime dt1 
= new DateTime(cs,SWT.CALENDAR);
        DateTime time 
= new DateTime(cs,SWT.TIME);
        DateTime data 
= new DateTime(cs,SWT.DATE); 
        shell.open();
        shell.layout();
        
while (!shell.isDisposed()) ...{
            
if (!display.readAndDispatch())
                display.sleep();
        }

        ft.dispose();
        display.dispose();
    }

}


CALENDAR,TIME,DATE是DateTime 显示的三种形式,具体的效果大家自己运行代码看看吧,我的图帖不上来

DateTime 的用法如下很简单的就一行代码就能出来:

DateTime dt1 = new DateTime(cs,SWT.?);其中“?” 代表调用CALENDAR,TIME,DATE中的任何一个。
我的开发环境 eclipse3.3M6+SWT-Designer6.0

谁能告诉我怎么贴图啊,我的图总是贴不上来

分享到:
评论

相关推荐

    类似于Outlook的可折叠面板可伸缩面板

    "类似于Outlook的可折叠面板可伸缩面板"是一种常见的设计模式,它模仿了Microsoft Outlook应用程序中的功能,允许用户根据需要调整和组织界面元素。这种设计能够提高工作效率,让用户在大量信息中快速定位和管理内容...

    jQuery可折叠的面板效果.rar

    jQuery可折叠的面板效果 效果不错,看起来也很简单

    Eclipse SWT面板编辑插件+安装教程

    总的来说,Eclipse SWT面板编辑插件是提升Eclipse中SWT应用开发效率的一个利器,它通过图形化界面降低了UI设计的门槛,使得开发者可以更加专注于应用的功能实现,而不需要花费过多精力在界面布局上。对于那些经常...

    c# winform好看折叠面板2723812263.rar_c#折叠_treelist_treeview_winform_折叠

    c# winform好看折叠面板2723812263 网络搜集整理 不保证质量 希望对大家有有所帮助

    winform折叠面板(c# )

    在Windows Forms(Winform)开发中,折叠面板是一种常见的用户界面元素,用于提供可扩展或隐藏的区域,以展示更多的内容。在C#中实现这样的功能,我们可以利用System.Windows.Forms库中的控件进行组合和自定义。下面...

    jQuery accordion插件:一个可折叠的面板【菜单】特效.rar

    jQuery accordion插件是一种广泛应用于网页开发中的交互式组件,它为用户提供了一种可折叠的面板效果,常用于创建菜单、导航栏或者信息展示区域。在网页设计中,accordion(手风琴)效果允许用户逐个展开或收起内容...

    电子行业:三星发布可折叠手机,拉动可折叠面板发展.pdf

    三星发布的可折叠手机和推动的可折叠面板发展正是这一趋势下的产物。 三星的可折叠手机采用了名为InfinityFlex的柔性可卷屏幕技术,可以实现屏幕的内外折叠。这种创新的设计使得设备在折叠后非常便携,展开后又能...

    c#折叠面板Demo

    6. **可访问性**:遵循无障碍设计原则,确保折叠面板对残障人士友好,比如添加合适的键盘导航和屏幕阅读器支持。 总的来说,C#折叠面板Demo是一个很好的学习项目,涵盖了控件编程、事件处理、数据绑定等多个关键...

    BSE可折叠式布局面板控件

    "BSE可折叠式布局面板控件"是一个专为C# WinForm应用设计的组件,它提供了一种高效的方式,帮助开发者在有限的屏幕空间内展示丰富的信息。这个控件允许用户根据需要展开或折叠面板,从而提高用户界面的可读性和交互...

    扩展控件Accordion折叠面板+CollapsiblePanel 面板隐藏.rar

    CollapsiblePanel(可折叠面板)则是Accordion控件的一个核心组成部分,它是一个可以收起和展开的独立单元。在不展开时,CollapsiblePanel只显示标题,展开后则显示详细内容。这种方式允许用户根据需要选择查看哪些...

    电子行业研究周报:三星规模生产可折叠OLED面板,杭州“芯政”打造新产业平台.zip

    本周电子行业的焦点无疑是三星大规模生产可折叠OLED面板的消息,以及杭州"芯政"项目对新兴产业发展的重要推动。这两项动态都预示着电子科技领域的新一轮创新与变革。 首先,三星作为全球领先的显示屏制造商,其在可...

    微信小程序动画折叠面板.7z

    真正的微信小程序动画折叠面板,css动画实现 真正的微信小程序动画折叠面板,css动画实现 真正的微信小程序动画折叠面板,css动画实现 真正的微信小程序动画折叠面板,css动画实现

    电子行业研究周报:三星规模生产可折叠OLED面板,杭州“芯政”打造新产业平台.pdf

    在电子行业领域,本周的研究周报聚焦于三星电子公司大规模生产可折叠OLED面板的最新进展以及杭州市政府推动集成电路产业发展的政策措施。这份周报对于三星可折叠OLED面板的量产表示出极大的关注,这标志着可折叠智能...

    折叠面板(c# winform)

    折叠面板在C# WinForm应用中的实现是一种常见的用户界面设计技术,它允许用户展开或折叠内容区域,以显示或隐藏相关信息。这样的设计可以提高界面的可用性和可读性,尤其是在处理大量信息时。以下是关于如何在C# ...

    AmazeUI 折叠面板

    **AmazeUI 折叠面板详解** AmazeUI 是一个基于移动优先的前端框架,它提供了丰富的组件,便于开发者构建响应式、跨平台的Web应用。在AmazeUI中,折叠面板(Accordion)是一个非常实用的功能,常用于展示有限空间内...

    Spry可折叠面板.exe

    Spry可折叠面板.exe

    jquery展开折叠面板特效

    jquery展开折叠面板特效,javascript

    微信小程序——折叠面板

    在本主题中,我们将深入探讨如何在微信小程序中实现一个简单的折叠面板。 折叠面板(Accordion)常用于展示内容丰富的信息,通过折叠和展开的方式节省屏幕空间,提高用户体验。在微信小程序中,我们可以通过...

    Axure教程:制作APP折叠面板.docx

    在本篇《Axure教程:制作APP折叠面板》中,我们将深入探讨如何使用Axure RP这一原型设计工具来创建常见的移动端APP组件——折叠面板。折叠面板,又称手风琴组件,常用于有限空间内的信息组织,允许用户按需展开或...

    具有可折叠面板的C#自定义控件

    本篇将详细讲解如何创建一个具有可折叠面板的C#自定义控件,以及如何在WinForms应用中实现这一功能。 首先,我们要理解什么是“可折叠面板”。可折叠面板是一种用户界面元素,它能够隐藏或显示其内容区域,以提供...

Global site tag (gtag.js) - Google Analytics