gpt4 book ai didi

java - 打包,但不要变小

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:03 28 4
gpt4 key购买 nike

我有 JFrameGridBagLayout。用户可以调整此窗口的大小。此外,他还可以执行一些更改窗口大小的编辑操作。我使用 pack(); repaint(); 现在在这样的操作之后。但是,实际上我不应该在这样的操作之后让窗口变小——只会变大。我发现的解决方案是

    Dimension oldSize = getSize();
pack();
Dimension newSize = window.getSize();
setSize(
(int) Math.max(newSize.getWidth(), oldSize.getWidth()),
(int) Math.max(newSize.getHeight(), oldSize.getHeight()));
repaint();

但我一点也不喜欢这个解决方案。除了丑陋的代码之外,我们还设置了两次大小(一次是按包,一次是直接设置)。还有其他解决方案吗?

最佳答案

一个简单的解决方案是使用这样的东西:

frame.setMinimumSize(frame.getSize());
frame.pack();
frame.setMinimumSize(null);

这将不允许 pack() 使窗口变小,我认为只会变大。通过在 pack() 之后将最小大小重置为 null,我们可以避免阻止用户之后将其调整得更小。

你不应该在最后需要一个repaint(),尺寸的变化应该会自动触发重绘。 (当然,请确保所有这些操作都发生在事件派发线程中。)

关于java - 打包,但不要变小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6485653/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com