`
snoopy7713
  • 浏览: 1152276 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

RowLayout

    博客分类:
  • RAP
阅读更多

RowLayout

   因为可以换行布局及可以设置间距和填充,所以RowLayout 使用比FillLayou 广泛的多。 RowLayout 有几个配置字段。甚至其中每个部件的宽度和高度都可以通过部件 的RowData ,使用setLayoutData 方法精确 的设定。

RowLayout 的配置字段

Type       *New in 2.0*

    Type 字段用来设置RowLayout 放置部件是按水平方向放置或垂直方向放置。默认值为水平方向放置 SWT.HORIZONTAL

       Warp

    Warp 字段是用来设置当此行没有足够的空间来放置部件时RowLayout 是否要将部件换到下一行上来显示,默认值为true

    Pack

    Pack 字段为真时RowLayout 中的部件将会保持他们原来的大小,并且是左对齐的。如果Pack 的值是false 的则部件将填满整个可利用的区域,跟FillLayout 相似 。其默认值是true

    Justify

    如果Justifytrue RowLayout 中的 各个部件将会在整个可利用区域从左到右依次展开排列,如果起父容器Composite 的变宽时,则其空白区域将会平均的分配大到各个部件。如果JustifyPack 同时为true ,则各部件将使用他们原来的大小,而空白区域被放置到各 个部件中间,以便可以正当的充满其区域。Justify 的默认值为false

    MarginLeft, MarginTop, MarginRight, MarginBottom and Spacing

    这写字段用像素来控制部件与部件之间(间距,spacing )、部件和其容器之间(填充,margin )宽度。默认的 RowLayout 的填充和间距为3 像素宽。各个 字段如下所示:

RowLayout 的示例

    下面代码首先创建RowLayout 对象然后 设置其各个字段均不为默认属性,然后将其设置为shell 的布局。

      RowLayout rowLayout = new RowLayout();

      rowLayout.wrap = false;

      rowLayout.pack = false;

      rowLayout.justify = true;

      rowLayout.type = SWT.VERTICAL;

      rowLayout.marginLeft = 5;

      rowLayout.marginTop = 5;

      rowLayout.marginRight = 5;

      rowLayout.marginBottom = 5;

      rowLayout.spacing = 0;

      shell.setLayout(rowLayout);

如果你要使用默认的设置则只需要一行代码:

shell.setLayout( new RowLayout());

下面的表格展示了其字段详细的设置及运行结果:

Initial

After resize

wrap = true

pack = true

justify = false

type = SWT.HORIZONTAL

(defaults)

wrap = false

(clips if not enough space)

pack = false

(all widgets are the same size)

justify = true

(widgets are spread across the available space)

type = SWT.VERTICAL

(widgets are arranged vertically in columns)

 

使用RowData 对象和RowLayout

每个被RowLayout 控制的部件可以通过设置RowData 来控制其宽度和高度。下面的代码是使用了RowData 来改变shell 中按钮的初始大小。

import org.eclipse.swt.*;

import org.eclipse.swt.widgets.*;

import org.eclipse.swt.layout.*;

public class RowDataExample {

   public static void main(String[] args) {

       Display display = new Display();

       Shell shell = new Shell(display);

       shell.setLayout( new RowLayout());

       Button button1 = new Button(shell, SWT.PUSH);

       button1.setText( "Button 1" );

       button1.setLayoutData( new RowData(50, 40));

       Button button2 = new Button(shell, SWT.PUSH);

       button2.setText( "Button 2" );

       button2.setLayoutData( new RowData(50, 30));

       Button button3 = new Button(shell, SWT.PUSH);

       button3.setText( "Button 3" );

       button3.setLayoutData( new RowData(50, 20));

       shell.pack();

       shell.open();

       while (!shell.isDisposed()) {

          if (!display.readAndDispatch()) display.sleep();

       }

   }

}

    运行这些代码后效果如图:

分享到:
评论

相关推荐

    SWT(JFace)体验之RowLayout布局

    本篇主要关注的是`RowLayout`,这是一种更加灵活且功能强大的布局方式,相比`FillLayout`提供了更多的自定义选项。 `RowLayout`布局允许用户对子组件的大小、边距、换行和间距进行精确控制,从而实现更加复杂和有序...

    qml自编布局控件Row与Column

    笔者在使用Qml语言开发产品时,使用quick1.1版本,都是一些基础的控件,比如布局类的控件(Row, Column等)这样的控件虽然通用,但在特定的场合下还是有很大的局限性。比喻Row水平布局没有自动居中布局控件的功能,...

    关于Swing的布局

    RowLayout layout = new RowLayout(JJWT.VERTICAL); layout.marginLeft = 10; layout.marginTop = 10; layout.marginRight = 10; layout.marginBottom = 10; layout.fill = false; layout.wrap = true; ...

    swt布局.doc

    2. `RowLayout`:允许组件在一行或多行中排列,支持填充、换行和间距选项。 3. `GridLayout`:将组件放置在网格中,可以灵活调整列数和行数。 4. `FormLayout`(2.0新特性):通过定义组件的边界粘贴位置来布局,...

    swt 布局管理器 java中应用

    RowLayout的一些关键属性包括`wrap`(决定是否允许换行)、`justify`(是否使各行中的组件宽度相等)、`type`(指定布局的方向,可以是水平或垂直)等。 #### GridLayout网格布局 GridLayout是最常用的布局管理器...

    qml界面布局的小demo

    2. **RowLayout**: 与ColumnLayout相反,它将元素沿水平轴排列,适合并排显示控件。例如: ```qml RowLayout { spacing: 10 Button { text: "Left" } Button { text: "Right" } } ``` 3. **GridLayout**: 根据...

    swt layout

    - RowLayout的属性包括`wrap`(是否允许换行)、`align`(对齐方式,如`SWT.LEFT`、`SWT.CENTER`或`SWT.RIGHT`)和`spacing`(行间间距)等。 3. **GridLayout**: - GridLayout是一种网格布局,允许子组件占据父...

    eclipse开发技术详解第7章

    本章主要介绍了SWT中的五种布局管理器:FillLayout、RowLayout、GridLayout、FormLayout和StackLayout。 7.1 布局管理器概述 布局管理器简化了组件定位的复杂性,避免了使用setBounds()方法进行绝对坐标定位的不便...

    示例layout.7z

    QML中的布局分为多个类型,例如ColumnLayout、GridLayout、RowLayout等,它们各自负责特定方向上的元素排列。例如: 1. ColumnLayout:沿垂直方向排列元素,从上到下,可以灵活控制每个元素的高度和宽度。 2. ...

    6、Webdynpro入门之页面控件布局介绍【原创】

    本篇文章将详细介绍Webdynpro中四种基本的页面布局方式:`FlowLayout`、`RowLayout`、`MatrixLayout`以及`GridLayout`,并结合具体示例进行说明。 #### 二、基本概念 Webdynpro是一种基于ABAP的技术,用于构建高度...

    Webdynpro布局详解

    本篇文章旨在详细介绍Webdynpro中几种常用的布局方式,包括`FlowLayout`、`RowLayout`、`MatrixLayout`及`GridLayout`。这些布局方式能够帮助开发者更好地管理界面上的控件排列与分布,从而提高用户体验。 #### 二...

    Java程序设计之swt教程

    常见的布局包括`FillLayout`、`GridLayout`和`RowLayout`等。不同的布局策略可以满足不同的界面设计需求。 - **FillLayout**:使所有控件填充容器。 - **GridLayout`:通过行列结构来排列控件。 - **RowLayout**:...

    SWT基础代码涵盖其所有控件

    布局管理器决定了控件在窗口中的排列方式,例如FillLayout使控件充满容器,GridLayout将控件按行和列分布,RowLayout则沿水平方向布局控件。 3. OSGi与SWT OSGi(Open Service Gateway Initiative)是一种模块化...

    Eclipse开发经典教程

    2. **RowLayout**:子组件沿行显示,可以自动换行,适用于需要排列多行组件的场景。 3. **GridLayout**:网格布局,允许子组件占据网格的多个单元,灵活控制组件的位置和数量。 4. **FormLayout**:这是一种更复杂...

    javaSWT简易计算器

    - `GridLayout` 和 `RowLayout`:布局管理器,用于组织和对齐组件。 3. **计算器的设计** 计算器通常分为两部分:显示区域和按键区。显示区域使用`Text`组件展示计算结果,按键区包含数字键(0-9)、运算符键(+...

    swt designer详细设计

    - **布局管理器**:用于控制控件的排列方式,包括 NullLayout、FillLayout、RowLayout、GridLayout 等多种布局类型。 #### 处理事件 SWT Designer 提供了一种直观的方法来添加和删除事件监听器。通过简单的拖放...

    SWT.rar_SWT tutorial_java swt_swt 登陆窗口_swt tutori_swt-designer

    在设计这样的窗口时,你需要考虑布局管理,SWT提供了几种布局类型,如FillLayout、GridLayout、RowLayout和 MigLayout,它们帮助你控制组件在窗口中的排列方式。 "SWT designer"是一个强大的可视化设计工具,它允许...

    基于QML,手机APP开发框架

    对于“左边侧靠切换不同功能项”的实现,QML中的DockLayout或RowLayout布局管理器可以帮助你轻松地将侧边栏与主内容区域并排排列。通过添加可滑动的Panel或者Drawer组件,可以实现侧滑效果,面板内可以包含多个功能...

Global site tag (gtag.js) - Google Analytics