当前位置: 首页 > 知识库问答 >
问题:

调整JDialog的大小,使不可见组件可见时的大小正确

翟默
2023-03-14

我有一个包含大量选项的JDialog,它工作得很好,但是我已经更改了它,默认情况下,除非用户单击Show Advanced按钮,否则某些选项是不可见的。

当他们这样做时,选项就会显示出来,但是因为对话框不够高,因为它的大小是基于那些选项被隐藏的,所以会添加一个垂直滚动条。

我希望对话框的大小足够大,当高级选项启用。我尝试创建显示高级选项的对话框,根据高级选项可见的情况调用pack()来适应

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

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

但是,当diplayed时,对话框的大小仅够选项未显示时使用,所以当单击Show Advanced时,对话框会再次添加滚动条。

我该如何解决这件事。

共有1个答案

唐炜
2023-03-14
this.pack();
showAdvancedAction.actionPerformed(null);

你把顺序颠倒了。您需要在组件可见后打包框架。

showAdvancedAction.actionPerformed(null);
this.pack();
 类似资料:
  • 问题内容: 请注意,我尚未在Windows计算机上仅在Mac计算机上对此进行测试。 我不确定这是否也会在Windows计算机上发生… 当我调整Java应用程序的大小时,内容是不可见的。我已经找到一种方法来解决它 后 调整其大小,但不能 同时 在用户调整窗口的大小。 我没有使用Swing之类的东西,因为它会使我的二进制文件变慢(我认为)。 结构是这样的: 我的主窗口 r的内容视图 基于子视图,包括-

  • jQueryUI提供resizable()方法来调整任何DOM元素的大小。 这种方法简化了元素的大小调整,否则需要花费大量时间和HTML编码。 resizable()方法在项目的右下角显示一个图标以调整大小。 语法 (Syntax) resizable()方法可以使用两种形式 - $(selector,context).resizable(options)方法 $(selector, contex

  • 问题内容: 前一段时间,我阅读了这篇文章,该文章展示了一种在Swing中实现可调整鼠标大小的组件的方法。 作者使用null的LayoutManager以便进行绝对的组件定位。我知道不应该使用null布局,所以我的问题是: 是否有已经实现的LayoutManager允许组件的绝对定位,还是我必须自己实现它? 问题答案: 布局管理器实际上执行3件事: 设置组件的位置。由于您需要能够拖动组件,因此您不希

  • 问题内容: 我有一个程序,我有一个在里面。当用户单击时,所有都将被删除,并向其中添加红色背景的。 当我单击时,除非调整大小(我正在使用Windows 7),否则该红色不会变为可见。有没有一种方法可以实现我想要的而无需手动调整大小? 这是我正在使用的部分代码: 问题答案: 要从JPanel或您必须调用的顶级容器中删除(然后添加新的JComponent)JComponent,只需一次,在操作结束时:

  • 已经建立了一个小的测试SWING应用程序,有三个面板。一个主JPanel,包含两个较小的JPanel。一个在左边(板面板),另一个在右边(侧板)。通过调用min、preferred和max size方法,两个内部面板都被设置为请求的特定大小。右面板中的一个按钮将父JFrame设置为not re-sizable。在父帧设置为不可调整大小之前,一切看起来都很好,这会导致(?!)调整框架和主面板的大小,

  • 框架设计采用NetBeans进行。我尝试了所有的解决方案,比如将布局从BorderLayout更改为GridBagLayout,甚至是这里提到的那个。