我正在使用GridBagLayout
并且我想将某些按钮设置为不可见(即无法看到或点击它们),但是当我使用wdButton.setVisible(false)
执行此操作时,其余按钮会移动。我想将原先被无限制按钮占据的空间留空并保持其余部分不变(与呈现here的问题类似)。那里提出的解决方案对我没用,因为我不想改变布局。
目前,我已经能够使用以下代码行完成此操作:
wdButton.setText("");
wdButton.setOpaque(false);
wdButton.setContentAreaFilled(false);
wdButton.setBorderPainted(false);
wdButton.setEnabled(false);
有没有更短的方法来实现这一目标?
答案 0 :(得分:4)
有没有更短的方法来实现这一目标?
创建方法并将按钮作为参数传递。
那里提出的解决方案对我没用,因为我不想改变布局。
该解决方案不涉及更改整个面板的布局管理器。它涉及使用包含按钮和空面板的CardLayout将面板添加到主面板。
我想将一些按钮设置为不可见
您可以将该按钮替换为另一个组件:
GridBagConstraints gbc = layout.getConstraints( button );
panel.remove( button );
panel.add( new JLabel(" ");
panel.revalidate();
因为你可以看到你做的任何事情都需要多行代码,所以选择最简单的解决方案,然后将代码移到一个方法中,这样你只需要为你想要隐藏的每个组件使用一个语句。