gpt4 book ai didi

java - 将组件保持在 BoxLayout 中的固定位置

转载 作者:行者123 更新时间:2023-11-29 03:07:07 27 4
gpt4 key购买 nike

我有一个 JPanel,它使用水平 Box 布局并包含一个 JLabel,我希望它与 中的其他组件保持在完全相同的位置JPanelsetVisible(false)。目前,随着其他组件变得不可见,JLabel 向左移动。

最简单的方法是什么?

编辑:添加图片

这就是所有组件都可见的 JPanel 的样子

enter image description here

当我将右边的三个 JTextFields 设置为不可见时,设置为文本 XJLabel 像这样向左移动:

enter image description here

但我希望它保持原样:

enter image description here

EDIT2:我实际上正在为这个特定的 JLabel 使用 Netbeans GUI 编辑器的免费设计。对于这个错误,我很抱歉 - 我最近一直在使用大量的 BoxLayouts,但我感到困惑!

最佳答案

Currently, the JLabel moves to the left as other components become invisible.

是的,布局管理器被设计为只处理可见的组件。我不确定是否有任何默认布局管理器可以工作,但我会考虑使用 GridBagLayout,因为此布局基于网格结构,所以只要您在该网格中有组件在另一行,标签不应移动。

否则,您可以使用 CardLayout 在面板中显示“其他组件”。然后,不是使组件不可见,而是将面板替换为空面板。

阅读 How to Use CardLayout 上的 Swing 教程部分获取更多信息和工作示例。

编辑:

根据您的图片,最简单的解决方案是使用“胶水”:

panel.add(Box.createHorizontalGlue);
panel.add(xLabel);

现在标签将始终显示在面板的最右侧。阅读 How to Use BoxLayout 上的教程有关“胶水”的更多信息。

关于java - 将组件保持在 BoxLayout 中的固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590333/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com