在我的项目中,我将 JPanel
分层放置在彼此之上,它们在很大程度上是彼此的副本。我这样做的方式是让组件的位置与上面和下面的相关位置完全相同。在某些地方,我需要显示下面的 JLabel
文本,在这种情况下,顶部的 JLabel
将为空。但是,空或 null JLabel 会扭曲定位。
到目前为止我已经找到了2个解决方案。一种是在上层使用 x 数量的空格,这将为 JLabel
提供等量的 权重> 作为其下方相应的标签。
另一种解决方案是在顶层以某种方式为ipadx
和ipady
值赋予空JLabel
等于其下方相应标签的面积。
这些解决方案对我来说似乎非常“hackish”,但这就是我能想到的全部。我担心这不可靠。这些解决方案中的任何一个都可以接受吗?如果是的话,哪种方式更可靠?
编辑:添加视觉效果 这是当面板正确排列时您所看到的。
这就是当 JLabel 为空且面板未正确排列时您所看到的情况。红色代表顶层面板
最佳答案
您是否尝试过 GridBagLayout 的 anchor 值?
来自 Oracle 文档:
“当组件小于其显示区域时使用,以确定放置组件的位置(区域内)。有效值(定义为 GridBagConstraints 常量)为 CENTER(默认值)、PAGE_START、PAGE_END、LINE_START、LINE_END, FIRST_LINE_START、FIRST_LINE_END、LAST_LINE_END 和 LAST_LINE_START”
关于java - 在 JLabel 中使用空格与在 GridBagLayout 中使用 ipadx/ipady,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23813537/