如何在不改变其他元素位置的情况下使组件不可见

时间:2012-02-29 07:59:57

标签: java swing jpanel jbutton gridbaglayout

有两个按钮:“下一个”& “返回”传递清单。当到达结束时,按钮“下一步”消失,但按钮“后退”不应该跳到她的位置。我使用setVisible (false),但按钮'Back'跳转到“Next”的位置。位置管理器是GridBagLayout。

3 个答案:

答案 0 :(得分:5)

  

我使用setVisible (false)

请改为setEnabled(false)。它不会删除按钮的可视化表示,这会修复布局,但会使其不可聚焦并且看起来不同。这是典型最终用户的“最少惊喜之路”。


  

位置管理器是GridBagLayout。

顺便说一句 - 如果你坚持让按钮不可见,GridLayout会达到保留其他按钮位置的效果。

答案 1 :(得分:4)

将按钮放在带有CardLayout的容器JPanel中,再加上一个空的JPanel(或JLabel)。如果您想隐藏按钮,只需在容器中交换卡片即可。

答案 2 :(得分:1)

有两个按钮:"Next"& "Back",这是使用CardLayout

的原因