Скажите почему не задаётся максимальный размер окна? Доброго времени суток. Я только начинаю изучать Java, и на каждом шагу встречаю много подводных камней. Порой ошибки глупые и банальные. Могу целый день сидеть пытаясь решить какую нибудь ерунду. Может это и неправильно спрашивать какие то глупые вопросы, но уже понял всё же лучше спросить и двигаться дальше. В связи с чем прошу помочь мне в решении такой задачи. Мне необходимо задать размер формы, что бы минимальный размер её составлял 400 на 400 а максимальный 600 на 600. JFrame frame = new JFrame("Новая форма");
frame.setVisible(true);
frame.setSize(400, 400);
frame.setMinimumSize(new Dimension(400, 400));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setMaximumSize(new Dimension(600, 600));
Если ограничить пользователя с уменьшением окна всё получилось то вот метод setMaximumSize не работает вовсе. Почему?

21 Авг 2019 в 07:08
243 +1
0
Ответы
1

Проблема с методом setMaximumSize() в том, что он не применяется к JFrame напрямую. Вместо этого, вы должны установить максимальный размер для самого содержимого окна (content pane). Для этого нужно использовать getContentPane() метод для получения контента и установки максимального размера для него.

Пример исправленного кода:

JFrame frame = new JFrame("Новая форма");
frame.setVisible(true);
frame.setSize(400, 400);
frame.setMinimumSize(new Dimension(400, 400));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setMaximumSize(new Dimension(600, 600));

Теперь максимальный размер будет ограничен 600x600, как вам и нужно. Надеюсь, это поможет вам продолжить изучение Java и решение других задач. Удачи!

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир