0

我在 Java 框架中初始化一个 JLabel,如下所示:

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6, CellConstraints.DEFAULT, CellConstraints.BOTTOM));

但是在显示 JFrame 之前,我做了一个小条件,如果返回 true,我想将 myLabel 设置为 DEFAULT 而不是 BOTTOM,但我找不到任何东西,除非像这样重新定义它:

contentPane.add(myLabel, cc.xywh(1, 1, 31, 6));

那么有没有更好的方法来编辑垂直位置属性?

4

1 回答 1

1

假设您使用的是 jgoodies FormLayout,那么您在重用CellConstraints实例方面会受到一定的限制。从文档和示例中可以看出,每个组件都添加到面板并CellConstraints复制了实例。此外,当尝试收集当前组件的约束时,会返回的副本。CellConstraints但是,您确实有一个选择:您可以获取该副本CellConstraints,修改公共vAlign实例 var,然后使用此更新的约束集调用setConstraints您的。FormLayout

FormLayout layout = (FormLayout)contentPane.getLayout(); 
cc = layout.getConstraints(myLabel);
cc.vAlign = CellConstraints.DEFAULT;
layout.setConstraints(myLabel, cc);

它比您提供的简单重新添加更详细一点,但它消除了在原始实例中维护幻数 (1,1,31,6) 的需要。

于 2010-06-20T12:25:27.240 回答