TableWrapLayout

TableWrapLayout 是基于网格的布局,它与 SWT 的通用 GridLayout 非常类似。不同之处在于,它使用工作方式更类似于 HTML 表的布局算法。它尝试保持为其提供的客户区,并垂直地增大以弥补空间不足问题。

在 GridLayout 与 TableWrapLayout 之间有很多相似点。它们都在网格中组织子代。两者都有用于指示布局如何处理每个控件的布局数据。它们都能接受有关哪个控件应该获得额外空间等的提示。

但是,它们在布局方式上有着根本的差别。TableWrapLayout 以列开头。它计算每一列的最小、首选和最大宽度并使用此信息来指定额外的空间。它还尝试在各列之间划分空间时保持最佳效果,以便不会使某些控件回绕次数过多。

可以将 GridLayoutTableWrapLayout 混合使用,但是,使用 GridLayout 的分支就是回绕停止分支。如果您不希望进行回绕(如果组合体包含无法以任何方式进行回绕的控件,如文本、按钮或树等),这种效果就相当令人满意。但是,应该存在从表单主体到每个需要进行回绕的文本控件的未中断路径。