问题描述
我正在研究一个 JDialog
子类(我们称之为 PendenciesDialog
),它向用户显示任意数量的相同大小、垂直堆叠的 JPanel
(至少一个)和它们下方的关闭按钮。除了构建 JDialog
并将其打包、向用户显示并让他们关闭对话框之外,不涉及任何交互。
这些 JPanel
显示了一些有关个人每月付款待付款的信息,例如帐户名称、待付款状态以及指向付款管理系统的可点击链接。我认为我们不需要关心它们是如何构建的。
现在是我的问题。我想将 JDialog
的宽度固定在屏幕宽度的一半,并将其最大高度限制为屏幕高度的一半,或者如果挂件数量很少或只有一个,则更短。如果我无法通过调整 JDialog
(例如通过覆盖 JDialog
的 getXXXSize()
方法)来实现这一点,我可以调整其子组件。不过我不确定我需要做什么。
为了构造 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 (将#修改为@)