2010-06-20 55 views
0

我初始化的Java框架的JLabel这样的:如何在初始化之后重置JLabel约束?

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

但我做这,如果返回true我想设置myLabel被设置为默认,而不是底部小状况显示的JFrame之前,但我可以“T反正找到除了再次重新定义是这样的:

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

那么,有没有更好的办法,只是编辑的垂直位置的财产?

+0

你对contentPane的布局是什么? – Istao 2010-06-20 12:06:15

回答

1

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

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

这是一个有点比更详细的简单重新添加您提供的,但它消除了需要在原来的情况下维持幻数(1,1,31,6)。

+0

正是我想要做的......而不是被限制在单元格坐标(1,1,31,6)......非常感谢:) – Brad 2010-06-20 18:25:50

相关问题