第四章 第二节 布局
第二节 布局(layout)
在composite中的控件(controls in a composite)与这个composite之间,布局为它们提供了松耦合层(decoupling layer)。布局一般使用平台无关的方式,而且通常在父窗体改变大小时保持相应大小(maintains relative sizing)。可以通过composite的setLayout()方法设置composite的布局。
所有可用的布局类都在org.eclipse.swt.widgets.Layout中。它是一个抽象类,现在还没有任何实现(implementation)(因此,它在widgets包中,而不是layout包——这样,与它在同一个包中的复合控件,就可以调用layout类的protected方法)。布局class没有public的API,因此创建layout类并把它关联到复合对象,再让SWT构架(SWT framework)调用必要的方法才可使用布局。
尽管一个复合控件只能有一种布局,但可以在一个窗体中创建多个复合控件,每个有它自己的布局。而且复合控件可以嵌套[1]。因为每个复合控件有独立于其它复合控件的布局对象,所以读者可以在同一个窗体中使用任意多的布局class来达到自己想要的整体布局。