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

标签 java swing jlabel gridbaglayout

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

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

另一种解决方案是在顶层以某种方式为ipadxipady值赋予空JLabel等于其下方相应标签的面积。

这些解决方案对我来说似乎非常“hackish”,但这就是我能想到的全部。我担心这不可靠。这些解决方案中的任何一个都可以接受吗?如果是的话,哪种方式更可靠?

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

这就是当 JLabel 为空且面板未正确排列时您所看到的情况。红色代表顶层面板 enter image description here

最佳答案

您是否尝试过 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/

相关文章:

java - For 循环会停止我的 swing 应用程序,直到循环完成

java - 无法在分配了 ToolTipText 的选项卡之间切换 (JTabbedPane)

java - 我如何保护我的类的实现不受其他开发人员的影响?

java - BST 迭代器中的转换错误

java - 如何消除动画过程中出现的闪烁?

java - 使用 LayoutManager 面板不显示在 JFrame 中

java - TableCellRenderer 为许多单元格设置颜色,而不仅仅是一个

java - JSP 是否只运行 JAR 的单个实例

java - 将括号放在 main 方法中的什么位置重要吗?

java - JScrollPane 内的 JEditorPane 不显示滚动条