布局

我们已经查看了简单的示例说明如何根据父代小窗口来确定子代小窗口的大小和位置。到目前为止,已响应调整大小监听器进行了计算。这通常是处理简单小窗口定位的最佳方法。然而,当放置小窗口时,应用程序使用公共模式。这些模式可以构造为可配置的布局算法,许多不同的应用程序都可以重复使用该算法。

SWT 定义了布局,它提供组合体中子代小窗口的通用定位和缩放。布局是抽象类布局的子类。可以在 org.eclipse.swt.layout 包中找到 SWT 标准布局。

当对小窗口重新调整大小和定位时,应了解一些一般定义。

这些概念与应用程序有关,不管是否使用了布局。可以认为布局是封装调整大小功能以便重复使用的便捷方法。

布局还引入了一些附加概念。

有关用来演示这些概念的进一步讨论和图片,请参阅了解 SWT 中的布局

以下代码片段说明了一种简单情况,应用程序使用调整大小回调来将标号的大小调整为它的父代外壳程序的大小。

      Display display = new Display ();
      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 ());
      }
   });

以下代码片段使用布局来获得相同的效果:

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

即使对于此简单示例,使用布局也减少了应用程序代码。对于更复杂的布局更加明显。

SWT 提供了可用于许多情况的四个缺省布局类。

Copyright IBM Corp. and others 2000,2002.