如何“锚定”SWT小部件?

时间:2012-07-22 22:48:09

标签: java eclipse layout swt

我正在尝试使用SWT库创建一个简单的浏览器。我有一个问题,虽然试图让对象锚定到左上角等。

我正在使用Eclipse并使用布局助手我将锚点设置为左上角和所有其他选项。

基本上我希望浏览器控件自动调整大小。谢谢! :d

我使用的布局类型是表单布局(在SWT帮助页面上建议使用锚点。)

1 个答案:

答案 0 :(得分:2)

对于你想要做的事情(将小部件附加到其父级的两侧),使用FormAttachment的单参数构造函数就足够了。这有效:

fd_browser.top = new FormAttachment(0);
fd_browser.left = new FormAttachment(0);
fd_browser.bottom = new FormAttachment(100);
fd_browser.right = new FormAttachment(100);

所说的是“将顶边连接到容器的0%垂直位置”,“将左边连接到0%水平位置,”“将底边连接到容器的100%垂直位置,“和”将右边缘连接到容器的100%位置。“换句话说,顶部和左侧边缘将位于容器原点+ 0处,而底部和右侧边缘将位于容器原点+容器大小的100%处。这听起来很复杂,但我认为它实际上非常直观。

使用双参数c'tor作为你的代码,从容器的0,0位置(450 down和845 across)指定硬编码偏移,这实质上是告诉Browser小部件是固定大小。 FormLayout中的偏移实际上仅用于设置边距或者从容器边缘或其他小部件设置偏移量。 : - )

我建议再次阅读FormAttachment和FormLayout的JavaDocs - 一旦你“搞定”它,我认为你很容易使用它。 SWT Snippets page上也可能有一些例子。