java - 如何 "anchor"SWT 小部件?

标签 java eclipse layout swt

我正在尝试使用 SWT 库制作一个简单的浏览器。尽管尝试将对象锚定到左上角等,但我遇到了问题。

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

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

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

最佳答案

对于您想要执行的操作(将小部件附加到其父级的侧面),使用 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 度,横向 845 度),这本质上是告诉浏览器小部件为固定大小。 FormLayout 中的偏移量实际上只适用于设置边距,或者,嗯,距容器或其他小部件边缘的偏移量。 :-)

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

关于java - 如何 "anchor"SWT 小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11604603/

相关文章:

java - 定义e如何从spring boot项目的application.properties中选择第二个数据源

java - 尝试使用 LauncherImpl 进行预加载时 JavaFX/Intellij 设置出现问题

java - Eclipse,创建 Android 项目,不会导入 javax.swing

eclipse - 无法使用 eclipse 连接到 Github 私有(private)仓库

java - Android - 页面标题与背景左中对齐

java - 有没有办法根据出现次数替换子字符串?

java - 如何从解压文件中获取 XML 值

eclipse - 在 Eclipse 中突出显示 .tpl 语法

image - 如何将 subview 放置在 React-Native 图像组件的右下角?

android - 后退按钮关闭最小化应用程序,但当从任务中重新打开时,它位于上一个 Activity 中