У меня есть 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();
Но мне это совсем не нравится. Помимо уродливого кода, мы устанавливаем размер дважды (один раз по пачке и напрямую). Есть ли другие решения?
Как насчет 'setMinimumSize' перед' пакетом'? –
@ Paŭlo Ebermann, спасибо большое. Это то, что мне нужно. Пожалуйста, опубликуйте его как ответ. –
сделано (немного больше текста). –