在我的项目中,我将JPanels
分层放在彼此之上,这大部分是彼此的副本。我这样做的方式允许组件位置与上面和下面的相关位置完全相同。在某些地方,我需要显示来自下方的JLabel
的文字,在这种情况下,顶部的JLabel
将为空。但是,空的或空的JLabel会扭曲定位。
到目前为止,我找到了2个解决方案。一种是在上层中使用 x 数量的空格,这将为JLabel
提供等量的权重它下面的相应标签。
另一种解决方案是在顶层空ipadx
中提供ipady
和JLabel
值,其方式等于下面相应标签的区域它。
这些解决方案似乎非常" hackish"对我来说,但这就是我能想到的一切。我担心这不可靠。这些解决方案都可以接受吗?如果是这样,哪种方式更可靠?
编辑:添加视觉效果 这是您在面板正确排列时看到的内容。
当JLabel为空并且面板未正确排列时,您会看到这一点。红色代表顶层面板
答案 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"