如何限制 JDialog

问题描述

我正在研究一个 JDialog 子类(我们称之为 PendenciesDialog),它向用户显示任意数量的相同大小、垂直堆叠的 JPanel(至少一个)和它们下方的关闭按钮。除了构建 JDialog 并将其打包、向用户显示并让他们关闭对话框之外,不涉及任何交互。

这些 JPanel 显示了一些有关个人每月付款待付款的信息,例如帐户名称、待付款状态以及指向付款管理系统的可点击链接。我认为我们不需要关心它们是如何构建的。

现在是我的问题。我想将 JDialog 的宽度固定在屏幕宽度的一半,并将其最大高度限制为屏幕高度的一半,或者如果挂件数量很少或只有一个,则更短。如果我无法通过调整 JDialog(例如通过覆盖 JDialoggetXXXSize() 方法)来实现这一点,我可以调整其子组件。不过我不确定我需要做什么。

为了构造 JDialog,我将其布局管理器设置为 BoxLayout 并带有 PAGE_AXIS 对齐,然后添加了一个 JScrollPane 以支持 JPanel (让我们称之为 JPanel 的引用变量 pendenciesPanel),然后添加一个关闭按钮。该 JPanel 也有一个 BoxLayout 管理器,具有 PAGE_AXIS 对齐,并将包含单个挂起 JPanel(实际上由于相等大小的要求,我认为它实际上应该是一个 { {1}})。

我打算 GridLayout 显示 JScrollPane 的视口,并在挂起数量太大而无法容纳 pendenciesPanel(或 JDialog }} 的)最大高度。

因此根据此说明,我如何实现 JScrollPane 大小调整?从我读到的内容来看,最合适的方法似乎是覆盖其 JDialog 方法,例如:

getXXXSize()

但我试图覆盖 private final Dimension SCREEN_DIMENSION = Toolkit.getDefaultToolkit().getScreenSize(); @Override public Dimension getMaximumSize() { return new Dimension(SCREEN_DIMENSION.width / 2,SCREEN_DIMENSION.height / 2); } getMinimumSize()getPreferredSize() 等似乎不起作用,或者我可能是错误地实现了它们。我是否需要调整其内部子组件?还是仅仅调整 getSize() 就足够了?如果是这样,如何?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)