`
dadi520
  • 浏览: 144084 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

SWT 小结(一)

 
阅读更多
Display:  代表一个底层的操作系统, 
Shell: 代表一个top-level window
// 检查用户有没有关闭主窗口
while(!shell.isDisposed)) {
 
 // 检查队列中是否有event, 如果没有就sleep
 if (!display.readAndDispatch()) {
  display.sleep();
 }
}
// 最后就把display 销毁掉
display.dispose();
swt 使用本地操作系统库, 只是在外面覆盖了一层java 代码, 所以 java widget 和 native widget的生命周期相同
构造Widget, 要指定父组件及其风格
Widget chilren = new Widget(parnet, style);
为什么要销毁掉widget
虽然java 的gc 的管理内存十分的优秀, 但是gui 资源是底层的, 重量级的, 所以他们是非常有限的
Color color = new Color(display, 255, 0, 0)
rule 1:  我创造的, 我必须销毁它
color.dispose();
rule2 : 销毁父容器, 会自动销毁父容器里面的子控件
销毁掉容器后, 我们不应该继续调用它。 否则会出现SWTException
Display 详细解析
Display 维持了一个eventQueue, 每次用户的操作都会生成一个Event, 并填充到EventQue中, readAndDispatch()方法
检查队列中是否有要执行的Event, 并把队列中的第一个Event取出执行, 这个执行是调用相应的监听器去执行.
二 布局管理
FillLayout: 放置组件在 单一的 行 或者列, 组件有相同的Size.
FillLayout(int type): type为SWT.HORIZONTAL / SWT.VERTICAL, 则组件在同一行 / 列,
FillLayout layout = new FillLayout(SWT.HORIZONTAL);
shell.setLayout(layout);
RowLayout: 和FillLayout 类似, 也是把组件放在同一行或者同一列, 但是不强制组件具有相同的大小.
rowLayout的属性
justify: 控制是否对齐  
wrap: 当前行或者列显示不下时,控制是否换行。
type: 与FillLayou类似
GridLayout: 本质上分成一个一个的Cell, 有的控件占用几个Cell.
GridLayout 属性
numcolmuns: 总共有几列
makeColumnsEqualWidth: 是否等宽
marginWidth: 组件左右两边预留的空白
marginLeft: 组件左边预留的空白
horizontalSpacing: 两个相邻cell水平间距
GridData
grabExcessHorizontalSpace: 是否占用水平的额外空间
widthHint : 组件占用的最小的宽度
horizontalIndent: 在cell的左边缩进的 像素
horizontalAligment: 水平对齐的方式 BEGINNER, CENTER, END
horizontalSpan: 所占的cell 数目
StackLayout: 所有的控件都有相同的Size 和 postion, 控件都堆叠在一起,只有最上面的组件可见。
注意:虽然你手动设置的了topControl, 但是直到容器调用layout的时候才会起作用。
 
 
 
 
 
 
 
分享到:
评论

相关推荐

    SWT 编 程 总 结

    ### SWT编程总结 #### 1. SWT是什么?... 小结 SWT为Java开发者提供了一种强大的工具集,用于创建高性能的图形用户界面。通过掌握SWT的基础知识和高级特性,开发者可以构建出既美观又实用的应用程序。

    Advanced SWT

    #### 小结 本文主要介绍了SWT中表格组件的高级使用技巧,包括创建表格、设置样式、定义列以及添加项等关键步骤。通过对这些高级控件的学习和掌握,可以显著提升开发者利用SWT构建复杂用户界面的能力。希望本篇教程...

    图形界面开发--AWT,Swing,SWT

    #### 18.6 小结 通过本章的学习,我们深入了解了AWT、Swing、SWT这三个主要的Java GUI库,以及如何使用它们来构建功能丰富且用户友好的图形界面。尽管Java的GUI开发并不是所有开发者都会接触到的领域,但对于那些...

    Eclipse_Swt_Jface_核心应用_部分19

    1.7 本章小结 10 第2章 配置SWT开发环境 11 2.1 下载和安装Eclipse 11 2.1.1 Eclipse下载页面介绍 11 2.1.2 下载Eclipse 12 2.1.3 安装Eclipse语言包 14 .2.1.4 在不同的语言中切换 15 2.2 直接获取...

    MyEclipse图形界面开发Swing_SWT

    #### 小结 通过以上内容的学习,我们了解到MyEclipse在图形界面开发方面提供了强大的支持。无论是使用AWT、Swing还是SWT,开发者都可以借助MyEclipse中的各种工具和插件来提高开发效率,创建出高质量的图形用户界面...

    第十八章 图形界面开发--AWT,Swing,SWT.pdf

    #### 18.6 小结 本章主要介绍了Java图形界面开发的基础知识和常用技术,包括AWT、Swing和SWT等。通过本章的学习,读者可以了解到图形界面开发的基本流程和技术要点,为进一步深入研究和实践打下坚实的基础。

    JNI技术实践小结.doc

    ### JNI技术实践小结 #### 一、背景与概述 JNI (Java Native Interface) 是一种标准的机制,允许Java程序直接调用本地方法(Native Methods),这些本地方法通常是由C或C++编写的。JNI技术在Java环境中非常有用,...

    Eclipse插件开发笔记—PDF—带目录

    1.8 本章小结 第2章 SWT/JFace概述 第3章 SWT编程基础 第4章 使用基本控件与对话框 第5章 容器与布局管理器 第6章 界面开发工具 第7章 高级控件使用 第8章 SWT/Jface的事件处理 第二篇 核心技术 第9章 Eclipse插件...

    JAVA程序开发大全---上半部分

    1.4 本章小结 5 第2章 MyEclipse集成开发环境的使用 6 2.1 MyEclipse集成开发工具界面 6 2.1.1 MyEclipse的菜单栏 7 2.1.2 MyEclipse的工具栏 13 2.1.3 MyEclipse的透视图 14 2.1.4 MyEclipse的视图 17 2.1.5 ...

    java记事本

    而SWT是Eclipse开源项目的一部分,它更接近于操作系统原生的UI,使得程序看起来和操作起来更像本地应用。 **Java Swing相关知识点:** 1. **JFrame**: JFrame是Java Swing中的顶级容器,用于创建应用程序的窗口。...

    Eclipse从入门到精通2

    ### 小结 TableViewer作为JFace框架中的重要组件之一,不仅提供了强大的表格展示能力,还引入了一系列关键概念,这些概念有助于开发者更好地组织和管理数据。通过本文的介绍,相信读者已经掌握了如何使用...

    Eclipse 插件入门开发教程

    **五、小结** - 本章介绍了Eclipse的基础知识以及如何开始插件开发。读者应该理解了Eclipse的起源、插件的概念、插件开发的基本流程和技术要点。 #### 第二章:SWT/jFace简介 **一、SWT/jFace概述** - **SWT简介*...

    Eclipse权威开发指南2.pdf

    1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑器、视图和...

    Eclipse权威开发指南3.pdf

    1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑...

    Eclipse权威开发指南1.pdf

    1.5 本章小结...... 11 1.6 参考文献...... 12 第2章 Eclipse入门 13 2.1 第一步...... 14 2.1.1 提示没有任何JRE可用的对话框..... 14 2.1.2 创建您的第一个项目..... 15 2.1.3 Eclipse的外观:编辑...

    treeview资料

    #### 15.5 小结 本章节介绍了TreeViewer的基本概念及其在RCP中的应用。通过构建简单的数据模型,我们可以更好地理解如何利用TreeViewer来展示层次数据。此外,还探讨了内容提供器、标签提供器的作用,以及如何设置...

Global site tag (gtag.js) - Google Analytics