本站首页 返回顶部 关于博主

对GridLayout和GridData的一点改进

PDF版

  用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());
  Combo combo = new Combo(parentControl, SWT.READ_ONLY );
  CGridData cgdata = new CGridData( CGridData.HORIZONTAL_ALIGN_FILL );
  cgdata.maximumWidth = 180;
  combo.setLayoutData( cgdata );

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




请你留言