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

SWT Part 4 —— Layout (布局)

阅读更多

        通常,在risize 事件监听器中处理简单的界面部件的定位是最好的方法,但是在应用程序中存在定位界面部件的一般模式,这些模式可以构建为可配置的布局算法,在很多不同的应用中重用。

        SWT 定义了通用的布局类,帮助我们在容器中定位部件位置和设置部件大小,这些布局了都是抽象类Layout 的子类,包含着 org.eclipse.swt.layout 包中。

 

在设定部件大小和位置时,有一些通用的概念:

  • 部件的位置由它在其父容器部件中的x、y 坐标位置确定的
  • 界面部件的首选尺寸(preferred size)是显示其内容所需要的最小尺寸,不同部件使用不同计算方式
  • 部件的 clientArea 是部件的客户端区域,在这个区域中子部件不会被裁减掉
  • trim 是部件的客户端区域和其实际的边框之间的距离,trim 被部件的边框或其边缘位置的额外空间占据。trim 的尺寸和外观依赖于不同的界面部件和所在平台。
不管是否使用布局,这些概念都是和应用程序相关的,你可以把布局当作一种方便快捷、可以重用的定位布局界面部件的方式。

布局引入了新的概念:
  • 一部分布局类支持界面部件之间的间隔 (spacing)
  • 一部分部件类支持布局的边缘和邻近边缘的部件之间的边距 (margin)
Understanding layouts in SWT 这篇文章更深入地探讨了这些概念,并且使用图片直观地展示了布局的原理。
    
下面的代码片段展示了使用resize 事件监听器的方式把标签(label)的大小设置为其父容器shell的大小的例子:
   Shell shell = new Shell (display);
   Label label = new Label (shell, SWT.CENTER);
   shell.addControlListener (new ControlAdapter () {
      public void controlResized (ControlEvent e) {
         label.setBounds (shell.getClientArea ());
      }
   });

 

下面是使用布局达到同样效果的例子:

   Shell shell = new Shell (display);
   Label label = new Label (shell, SWT.CENTER);
   shell.setLayout (new FillLayout ());

在这个简单的例子中,布局减少了应用程序的代码,在更为复杂的布局中,将产生更大的简化效果。

 

下面列出了SWT 提供的标准布局:

  • FillLayout 在一行或一列中以同样大小显示控件
  • FormLayout 使用 FormAttachments 通过可选择地配置每一个子控件的左、上、右、下的边来定位子控件的位置,
  • GridLayout 通过行和列的方式定位子控件的位置
  • RowLayout 在行或列中放置子控件
附:

分享到:
评论

相关推荐

    swt网页布局介绍Layout

    在SWT中,布局(Layout)扮演着至关重要的角色,它负责控制控件的排列方式和大小,确保界面在不同屏幕尺寸和分辨率下都能有良好的显示效果。 布局管理器主要有以下几种: 1. **FillLayout**:填充布局是最简单的...

    swt layout

    3. 对子组件设置布局数据,这可能涉及到`LayoutData`对象的使用,以便于布局管理器正确地定位和调整子组件的大小。 通过以上布局管理器,开发者可以创建出各种符合需求的用户界面。在实际编程中,选择合适的布局...

    swt布局.doc

    首先,SWT布局的核心是抽象类`Layout`的子类。布局的主要作用是控制Composite的子组件的位置和大小。当创建一个用户界面时,如果不指定布局,子组件可能会默认为零大小,导致不可见。因此,合理使用布局是创建有效...

    swt 布局管理器 java中应用

    ### SWT布局管理器在Java中的应用详解 在Java的图形用户界面(GUI)开发领域,Swing和SWT是两个广泛使用的框架。Swing是Java的一部分,而SWT(Standard Widget Toolkit)则是Eclipse项目的一部分,专门针对原生操作...

    swt form

    4. 事件处理:SWT支持事件驱动编程,用户可以通过监听和处理事件(如按钮点击、文本更改等)来响应用户操作。 5. 自定义组件:如果标准组件不能满足需求,开发者可以创建自定义组件,继承自SWT提供的基类,添加自己...

    swt designer6.9.5 破解版 for eclipse3.5 part4

    swt designer 6.9.5 part4 of part4介绍见part1

    SWT开发布局(讲解Eclipse的开发插件)

    【SWT布局详解:Eclipse开发插件使用】 在Java平台上,SWT(Standard Widget Toolkit)是一种用于构建图形用户界面(GUI)的库,它是Eclipse IDE中的核心组成部分。SWT提供了一系列的基础控件和布局管理器,使得...

    SWT教程java开发文档

    4. **Layout**: Layout管理Shell或Composite内的Widget布局,如FlowLayout、GridLayout、 MigLayout等,确保界面在不同屏幕尺寸下保持良好的显示效果。 ### SWT的主要特点 1. **原生性能**: SWT直接使用操作系统...

    eclipse配置SWT(4/4)

    4. **创建SWT程序**:在Eclipse中创建一个新的Java项目,然后新建一个类,继承自`org.eclipse.swt.widgets.Shell`类,并重写`createContents`方法来添加组件和布局。 5. **运行SWT程序**:在Eclipse中运行这个类,...

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

    此外,SWT还支持事件处理、布局管理以及对话框等特性,使得开发者可以方便地构建复杂的用户界面。 为了在64位Java环境中使用这个库,开发人员需要确保他们的Java开发环境(JDK)也是64位的,因为32位的JDK无法识别...

    SWTDesigner_v7.6.0_for_Eclipse3.6_Part2

    4. **丰富的控件库**:SWTDesigner支持SWT和JFace库中的所有控件,包括按钮、文本框、列表、树视图、表格等,还提供了许多自定义控件和布局选项。 5. **布局管理**:它提供了一套直观的布局工具,帮助开发者轻松...

    swt工具文档 swt工具文档

    4. **Layout**: SWT提供了一套布局管理器,如FillLayout、GridLayout、RowLayout和 MigLayout,用于控制Shell和Composite中Widget的排列和大小。 5. **Event和Listener**: SWT事件模型基于事件和监听器。事件是用户...

    java界面库swt.jar 4.911

    下载编译的SWT库,版本号4.911,包含多个版本: org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.arm org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk....

    swt教程 有关SWT怎么应用

    import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; public class HelloSWT { public static void main(String[] args) { Display display = new Display(); Shell shell = new...

    swt入门教程swt JFACE入门教程

    1. **创建UI元素**:使用JFace的`Dialog`、`View`、`Part`等类创建窗口和视图,这些类通常已经封装了SWT控件的创建和布局。 2. **使用控制器**:JFace的`Action`类用于创建可执行的操作,它可以关联到按钮或其他...

    Eclipse SWT JFace核心应用 PDF.part1 of 3

    第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,...

    swt-grouplayout.jar

    4. **Alignment**: 对齐方式是指控件在布局中的位置,比如水平居中、垂直居下等。GroupLayout支持多种对齐方式,以满足不同设计需求。 5. **Columns and Rows**: GroupLayout允许创建多列或多行布局,每个Group可以...

    Eclipse SWT JFace核心应用 PDF.part2 of 3

    第2篇介绍了SWT基本控件的使用,以及事件处理、布局等SWT基本知识的应用。第3篇介绍了关于SWT的高级应用。第4篇介绍了JFace 框架的知识及其应用。第5篇介绍了最新的RCP应用程序的开发。 本书结构清晰,注重实用,...

    最全的SWT示例(绝对最全),上次文件损坏了,重传个

    这是我找到的最全的SWT示例,即使在官方网站上也非常难找,示例包括以下内容:SWT模式窗体,SWT浏览器,SWT树,SWT工具条,SWT画图工具,SWT图形,SWT各种布局,SWT剪贴板,SWT快捷键,SWT菜单,SWT文本编辑器,SWT...

Global site tag (gtag.js) - Google Analytics