我JFrame
有GridBagLayout
。用户可以调整此窗口的大小。此外,他还可以执行一些更改窗口大小的编辑操作。我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();
但我根本不喜欢这个解决方案。除了丑陋的代码之外,我们设置了两次大小(一次通过包,而不是直接)。还有其他解决方案吗?