首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpringLayout与SwingBuilder

SpringLayout与SwingBuilder
EN

Stack Overflow用户
提问于 2014-08-13 22:53:24
回答 1查看 281关注 0票数 1

我试图快速和轻松地布局行和列的按钮和标签。有按钮和标签是相同的宽度看起来很荒谬,所以我已经排除了GridLayout。如果有人建议GridBagLayout,我可以割腕。所以我认为SpringLayout是我最好的选择。但我不是Groovy专家,尤其是GUI方面。

因此,我希望有人能够提供或指向一个简单的示例,说明如何将SpringLayout与SwingBuilder结合使用。特别是如何指定约束,因为在我看到的所有SwingBuilder示例中,每个小部件实例都是在没有命名实例的情况下动态创建的。那么,如何引用另一个兄弟或父小部件来获取相对约束呢?我还没有在互联网上找到任何能解释这一点的东西。

工作示例代码将与2行/2列将获得胜利!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 19:01:54

您可以在节点中设置id,然后将id作为变量引用,例如:

代码语言:javascript
复制
import javax.swing.*
import groovy.swing.*

new SwingBuilder().edt {

    def layout = springLayout()

    frame(title: 'SpringLayout', visible: true, layout: layout) {
        label(id: 'label1', text: 'Label1: ')
        textField(id: 'textField1', columns: 15)
        label(id: 'label2', text: 'Label2: ')
        textField(id: 'textField2', columns: 15)
    }

    def label1Cons = layout.getConstraints(label1)
    label1Cons.setX(Spring.constant(5))
    label1Cons.setY(Spring.constant(5))
    def textField1Cons = layout.getConstraints(textField1)
    textField1Cons.setX(Spring.sum(Spring.constant(5), label1Cons.getConstraint(SpringLayout.EAST)))
    textField1Cons.setY(Spring.constant(5))

    def label2Cons = layout.getConstraints(label2)
    label2Cons.setX(Spring.constant(5))
    label2Cons.setY(Spring.sum(Spring.constant(30), label2Cons.getConstraint(SpringLayout.NORTH)))
    def textField2Cons = layout.getConstraints(textField2)
    textField2Cons.setX(Spring.sum(Spring.constant(5), label2Cons.getConstraint(SpringLayout.EAST)))
    textField2Cons.setY(Spring.sum(Spring.constant(25), textField1Cons.getConstraint(SpringLayout.NORTH)))

}

也许您应该尝试使用MigLayout来寻找更简单的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25297517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档