【问题标题】:Using whitespace in JLabel vs. ipadx/ipady in GridBagLayout在 JLabel 中使用空格与在 GridBagLayout 中使用 ipadx/ipady
【发布时间】:2014-05-23 01:53:24
【问题描述】:

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

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

另一种解决方案是在顶层中将ipadxipady 值设为空JLabel,其方式等于其下方相应标签的面积。

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

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

当 JLabel 为空且面板未正确排列时,您会看到这种情况。红色代表顶层面板

【问题讨论】:

    标签: java swing jlabel gridbaglayout


    【解决方案1】:

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

    【讨论】:

    • 我玩过锚值,但我无法得到我需要的东西。虽然,我得承认我对锚的理解并不是 100% 清楚,尽管我已经阅读了它。 GridBagLayout 是一个需要驯服的大怪物。
    猜你喜欢
    • 2012-10-11
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2011-10-12
    • 2021-09-25
    • 2013-12-07
    • 2013-11-13
    • 1970-01-01
    相关资源
    最近更新 更多