sách gpt4 ai đã đi

java - 为什么 getPreferredSize() 返回的大小对于此 JDialog 来说太小?

In lại 作者:行者123 更新时间:2023-12-01 05:57:15 hai mươi bốn 4
mua khóa gpt4 Nike

在我们的产品中,我们的框架基本上是 JDialog 的三个继承级别。该框架覆盖默认的 pack() 方法,如下所示:

@Ghi đè
public void pack() {
this.setSize(getMaximumSize());
validate();
super.pack();
}

@Ghi đè
public Dimension getMaximumSize(){
return super.getPreferredSize();
}

pack() 几乎所有内容都显示在屏幕上后就会被调用。许多这样的窗口都有一个标题栏、几个工具栏、一个包含主要内容的 Pane (通常大部分是空的)以及底部的状态栏。

我的问题似乎是,当它为容器调用 getPreferredSize() 时,结果太小,即宽度看起来不错,但高度却不然。通读文档,如果未明确设置(我很确定不是),则似乎首选大小是根据布局管理器计算的。我不太确定它是如何计算的,或者我是否应该先做其他事情。

有人对我的问题可能出在哪里有任何想法或想法吗?它并不总是太小,只是有时如此。请让我知道哪些其他信息/代码可能有助于解决这个问题。谢谢。

1 Câu trả lời

我相信大多数布局都会使用获取容器直接子级的首选尺寸的基本前提,然后返回包含使用其首选尺寸布局的组件的最小尺寸(快速检查源代码显示FlowLayout、BoxLayout 和 GridLayout 就是这种情况)。所以我可以提供的两个建议是:

  1. 阅读您使用的布局(或您最常使用的布局)的 getPreferredLayoutSize(Container) 源代码,并确认它们在计算中使用首选尺寸。
  2. 为最低级别的组件(不是其他组件的组合的项目)显式设置 PreferredSize,然后这些组件的组合应具有适当的首选尺寸关系。

关于java - 为什么 getPreferredSize() 返回的大小对于此 JDialog 来说太小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517938/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com