在GridBagLayout中使用JLabel中的空格与ipadx / ipady

时间:2014-05-22 17:29:25

标签: java swing jlabel gridbaglayout

在我的项目中,我将JPanels分层放在彼此之上,这大部分是彼此的副本。我这样做的方式允许组件位置与上面和下面的相关位置完全相同。在某些地方,我需要显示来自下方的JLabel的文字,在这种情况下,顶部的JLabel将为空。但是,空的或空的JLabel会扭曲定位。

到目前为止,我找到了2个解决方案。一种是在上层中使用 x 数量的空格,这将为JLabel提供等量的权重它下面的相应标签。

另一种解决方案是在顶层ipadx中提供ipadyJLabel值,其方式等于下面相应标签的区域它。

这些解决方案似乎非常" hackish"对我来说,但这就是我能想到的一切。我担心这不可靠。这些解决方案都可以接受吗?如果是这样,哪种方式更可靠?

编辑:添加视觉效果 这是您在面板正确排列时看到的内容。 enter image description here

当JLabel为空并且面板未正确排列时,您会看到这一点。红色代表顶层面板 enter image description here

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用GridBagLayout的锚点值?

来自Oracle文档:

"当组件小于其显示区域时使用,以确定放置组件的位置(在区域内)。有效值(定义为GridBagConstraints常量)是CENTER(默认值),PAGE_START,PAGE_END,LINE_START,LINE_END,FIRST_LINE_START,FIRST_LINE_END,LAST_LINE_END和LAST_LINE_START"