`
ihuashao
  • 浏览: 4770381 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

对GridLayout和GridData的一点改进

阅读更多

  用Eclipse做Java开发的朋友,如果开发过程中用到过SWT,想必一定用过GridLayout。
  关于如何使用Layout,不是本文的重点。这篇文章Understanding Layouts in SWT 写得很清楚,我没必要赘述。本文仅仅是介绍如何使用我改进后的CGridLayout和CGridData,至于实现,我已经共享了源代码。
  GridLayout是我们用得最多的Layout,使用它几乎能够实现所有的布局。不过,在使用的时候,如果希望某个Control能够水平填充 (也就是说horizontalAlignment = FILL),但是有希望它的宽度有个最大值的时候,GridLayout和GridData是无法做到这点的。于是,我写了这两个类 CGridLayout和CGridData。它们完全具有GridLayout和GridData的功能,除此之外,当 CGridData.horizontalAlignment == CGridData.FILL的时候,CGridData.maximumWidth就起作用了。同理,如果 CGridData.verticalAlignment == CGridData.FILL,那么,CGridData.maximumHeight就开始起作用。
  使用起来很方便,举例:

  parentControl.setLayout( new CGridLayout());
  Combocombo = new Combo(parentControl,SWT.READ_ONLY);
  CGridDatacgdata = new CGridData(CGridData.HORIZONTAL_ALIGN_FILL);
  cgdata.maximumWidth = 180 ;
  combo.setLayoutData(cgdata);

  这样,你就可以在parentControl上面创建了一个Combo,这个Combo是水平填充的,但是最大宽度不超过180。
  对源代码感兴趣的朋友点击<<此处>> 下载。你也可以完全免费使用它,不过你必须遵循Eclipse Public License v1.0 。如果你发现它有什么缺陷,或者有好的改进方法,欢迎与我联系。

分享到:
评论

相关推荐

    GridLayout

    5. **简单易用**:相较于其他复杂的布局管理器(如`BorderLayout`或`GridBagLayout`),`GridLayout`更为直观和易于理解。 #### 三、构造方法 `GridLayout`类提供了一个主要的构造方法,用于初始化网格布局: ```...

    Qt自定义控件GridLayout

    - `mainwindow.cpp`:主窗口的实现,可能包含了对GridLayout控件的实例化和操作,如添加控件和设置布局属性。 - `main.cpp`:应用程序的入口点,初始化Qt应用并运行主窗口。 - `gridlayout.h`:自定义GridLayout...

    在2.2下使用GridLayout

    在API级别21(Android 5.0 Lollipop)之前,`GridLayout`位于`android.widget`包中,但在API级别21及以后,谷歌提供了改进的`GridLayout`实现,将其移至`android.support.v7.widget`包,这就是为什么我们有`...

    java 应用GridLayout设计版面

    `GridLayout`将容器分为一个行和列的网格,并将组件均匀地分布在这些网格中。在本教程中,我们将深入探讨如何使用`GridLayout`设计版面。 1. **GridLayout的构造函数** `GridLayout`有三个构造函数,分别是: - `...

    matlab开发-GridLayout

    在MATLAB编程环境中,开发图形用户界面(GUI)时,我们常常需要对控件进行有效的布局管理,使得GUI界面看起来整洁、有组织。`GridLayout`是MATLAB提供的一种布局管理器,它允许开发者以直观且灵活的方式组织界面元素...

    021集-FrameLayout和GridLayout

    本视频教材“021集-FrameLayout和GridLayout”深入探讨了两种常用的布局方式:FrameLayout和GridLayout,旨在帮助开发者更好地理解和运用这两种布局。 **FrameLayout**是Android中最基础的布局之一,它按照从上到下...

    GridLayout使用Demo(兼容4.0以下版本)

    系统内置了GridLayout类,但在2.2(API Level 8)和2.3(API Level 10)等旧版本中,你需要使用第三方库,比如`android-support-v7-gridlayout`库,这个库包含了对GridLayout的兼容支持。引入该库后,你就可以在低...

    GridLayout 用法

    在提供的代码片段中,虽然作者试图使用`GridBagLayout`,但题目要求我们关注`GridLayout`,因此我们将基于这个前提进行解析和扩展。 1. **布局管理器(LayoutManager)**:在Java Swing中,布局管理器用于控制容器...

    GridLayout 支持4.0以下版本实用的包

    在描述中提到的`gridlayout_v7`库正是Google提供的一个支持库,它包含了对早期Android版本的GridLayout的支持。 3. **如何使用GridLayout_v7库**: - 首先,在项目的build.gradle文件中添加依赖。对于Gradle构建...

    GridLayout 布局管理详细解析

    每个控件在GridLayout中占据一个或多个单元格,这些单元格通过行和列进行定位。通过设置控件的`android:layout_row`和`android:layout_column`属性,可以指定控件所在网格的位置。例如,`android:layout_row="1"`...

    Android 4.0 在GridLayout中模仿RadioButton单选按钮

    相比于其他布局,GridLayout提供了一种更灵活的方式来对齐和定位组件,特别适合创建表格或棋盘状的用户界面。 RadioButton是Android中的选择控件,通常用于实现单选功能,即用户只能选择一个选项。在默认情况下,...

    Quick QML-通过GridLayout设计的简易网站导航界面

    资源文章介绍地址:https://www.cnblogs.com/lifexy/p/14686618.html 通过GridLayout来做一个简易的网站导航界面,并支持自适应界面.当我们点击其中的某个按钮,就会打开浏览器跳到对应的网站上.

    GridLayout实例程序

    GridLayout是Android布局系统中的一种,它是视图容器,允许我们以...初学者可以通过查看和分析这些示例,进一步理解和实践GridLayout的使用方法。在实践中,可以尝试修改不同的属性值,观察布局的变化,以此加深理解。

    android-support-v7-gridlayout.jar

    android-support-v7-gridlayout.jar

    GridLayout示例图片

    虽然GridLayout提供了方便的网格布局,但自Android 5.0(API level 21)引入了RecyclerView和GridLayoutManager,它们提供了更高效的数据绑定和滚动性能。在处理大量动态数据时,通常推荐使用RecyclerView与...

    Android移动应用开发网格布局GridLayout的特点.pdf

    总的来说,Android 的 GridLayout 提供了一种灵活且直观的方式来组织和定位界面元素,尤其适用于需要精确布局和对齐的应用场景。开发者可以通过熟练掌握这些属性和方法,创造出更具吸引力和用户体验的移动应用。

    java swing-GridLayout的使用

    GridLayout 是一种 Java Swing 库提供的布局管理器,用于在容器中将组件排列为规则的行列网格。 GridLayout 的特点如下: 组件按照行和列的顺序进行排列。 所有的单元格大小相等,会根据容器的大小自动调整。 可以...

    简单计算器 及GridLayout布局

    总的来说,这个示例涵盖了Java GUI编程的基础知识,包括布局管理器的使用(GridLayout和GridBagLayout)、事件处理(ActionListener和TextListener)、组件的创建和交互。通过这样的练习,开发者可以更好地理解和...

    Android移动应用开发网格布局GridLayout的常用属性.pdf

    同时,GridLayout还支持使用`android:orientation`属性来改变行和列的排列方向,但此属性在GridLayout中默认为垂直方向,通常不需要额外设置。 此外,每个子组件也可以有自己的属性,如`android:layout_column`和`...

Global site tag (gtag.js) - Google Analytics