当不可见组件可见时,将JDialog调整为正确大小

时间:2018-05-18 12:55:12

标签: java swing jdialog

我有一个包含大量选项的JDialog,它一切正常,但我已更改它,因此默认情况下,除非用户点击显示高级,否则某些选项是不可见的em>按钮。

当他们这样做时,会显示选项,但因为对话框不够高,因为它根据隐藏的选项进行了调整,所以会添加垂直滚动条。

我希望对话框的大小足够大,以便在启用高级选项时。我通过创建显示高级选项的对话框尝试了这一点,根据可见的高级选项调用pack()以适应

 this.pack();
 showAdvancedAction.actionPerformed(null);

然后调用方法使高级选项不可见。

但是当显示对话框时,对话框只有在没有显示选项时才足够大,所以当点击显示高级时,对话框会再次添加滚动条。

我该如何解决这个问题。

2 个答案:

答案 0 :(得分:0)

this.pack();
showAdvancedAction.actionPerformed(null);

您的订单已被撤消。在组件可见后,您需要打包框架。

showAdvancedAction.actionPerformed(null);
this.pack();

答案 1 :(得分:-1)

在java swing中,您可以在面板上添加按钮或组件。但是当你尝试调整这些大小时,你需要使用Grid Layout / GridLayout类。尝试使用网格布局并通过提供X,Y坐标值来排列控件。它肯定会奏效。