3

我有一个应用程序,我希望用户能够在普通设置和高级设置之间进行选择。现在,如果用户检查 JCheckBox 并且高级设置应该消失,问题就开始了。我的想法是将所有不必要的摇摆组件(JScrollPane、JLabel ...)设置为不可见,然后找到一种 JFrame 方法,该方法使窗口适合 VISIBLE 组件。我的问题是是否有这样的方法?

4

3 回答 3

6

...然后找到适合可见组件的窗口的 JFrame 方法。我的问题是是否有这样的方法?

是的,有这样一种方法,叫做pack().

这将通过顶层窗口持有的所有容器的布局管理器级联,要求它们重新布局其可见组件,根据组件和布局管理器要求将组件调整为首选大小,并最终调整大小适合容器及其组件的顶级窗口。

于 2012-07-16T12:56:10.780 回答
4

1.您可以使用 setVisible(boolean b), 使组件可见和不可见。

2.您可以检查该组件是否可见或未使用isVisible()

3.然后可以使用 pack() 方法,pack() 方法根据需要设置帧大小

于 2012-07-16T12:56:31.617 回答
0

我认为您可以将高级内容包装在一个面板中(如果可能)并使用this.remove(component)然后使用从框架中删除该面板this.pack()
,您可以在显示它们时执行相反的操作,this.add(...)然后this.pack()再一次

于 2017-05-01T00:34:38.590 回答