JLabel.setVisible(false) 使其他组件的位置改变

Eri*_*ang 1 java swing layout-manager

我在 swing 应用程序中遇到了一个重新布局问题,我使用 GridBagLayout 将四个组件(两个 JLabels、一个 JTextField 和一个表,每个组件占用一行)添加到面板,对于某些逻辑,我需要使一个标签可见 true 或基于某些条件为 false,但是当我调用 setVisible(false) 时,该标签下面的组件会出现一点,而当我调用 setVisible(true) 时,它们会下降一点,这会使 GUI 闪烁。有什么方法可以让其他元件粘在面板上吗?谢谢。

jzd*_*jzd 5

您可以只更改默认值和 之间的文本,而不是将标签设置为可见或不可见 ""。标签仍会堆叠相同的高度,但不会显示任何文本。