2015-05-12 40 views
1

我会在JApplet中隐藏一个JButton。我使用setVisible()方法,但是我遇到了一个问题:它可以工作,但是由于缺少组件,我的GUI被移位了。有没有办法隐藏一个组件并占用空间? 我知道这是可能的Android,但在Java? ps。在我的JPanel中插入组件我使用GridBagLayout!SetVisible(false)占用空间

回答

0

有几种方法可以实现这一般。

最正确的方法是布置其他组件,以保持其当前位置正确连接。

因为对于复杂的布局,正确的方法可能很难获得,特别是之后难以改变,您可以应用一些布局“黑客”。例如,不是直接将按钮添加到面板,而是将按钮添加到其自己的独立面板(让我们将其命名为buttonPanel),然后将该面板与按钮一起添加到包含其他组件的面板。这样,当你删除按钮时,buttonPanel将保持填补空白。

但是,根据指定约束的方式,buttonPanel可能会在您删除按钮时收缩。为了防止这种情况发生,在删除按钮之前,先取buttonPanel的宽度并将其设置为最小/首选宽度;大多数布局管理员都会尊重这个属性。

当然,您可以随时使用硬编码尺寸来避免动态尺寸计算,但请记住F和i18n的L &问题。

0

尝试使用setOpaque()方法。只要做button.setOpaque(false);,那应该可以做到。那样有用吗?