I have JFrame
with GridBagLayout
. User can resize this window. Also, he can perform some editing actions that change window size. I use pack(); repaint();
now after such actions. But, actually I shouldn't make window smaller after such operations - only bigger. What I found as solution is
Dimension oldSize = getSize();
pack();
Dimension newSize = window.getSize();
setSize(
(int) Math.max(newSize.getWidth(), oldSize.getWidth()),
(int) Math.max(newSize.getHeight(), oldSize.getHeight()));
repaint();
But I don't like this solution at all. Beside ugly code, we set size twice (once by pack and than directly). Is there any other solutions?
setMinimumSize
beforepack
? – Simplifyvalidate()
instead ofpack()
. – Aerostation