Я пытаюсь визуализировать BufferedImages определенных предопределенных размеров на JPanel, содержащейся в JFrame. Я могу строго определить размер JPanel, но, похоже, что установка размера JFrame устанавливает общую внешнюю область, включая заголовок и границы, и они имеют разные значения в разных графических средах. Установка слишком большого размера оставляет пустое пространство между внешними краями JPanel и внутренними краями JFrame, а установка слишком малого размера приводит к тому, что изображение вообще не будет отображаться.
Есть ли способ определить во время выполнения, сколько дополнительного пространства дополняет размер JFrame, чтобы ничего не произошло? Или есть способ изменить размер JFrame на основе его внутренних границ, а не внешних границ?
Когда размер JPanel равен размеру дисплея, а для extendedState в JFrame задано значение JFrame. MAXIMIZED_BOTH, а для undecorated установлено значение true, проблем нет, но я также хотел бы поддерживать режим оконного отображения, который одинаков для разных графические среды, где я сталкиваюсь с этой проблемой.
Первоначально я пытался использовать константы для заполнения размера JFrame на компьютере, на котором я тестировал код, который работал хорошо, пока я не попытался использовать его на другом компьютере. Запуск одного и того же кода на другом компьютере с другим монитором (хотя и с одинаковым разрешением) привел к появлению лишних пробелов между границами, поэтому кажется, что константы не являются ответом.
Было бы полезно узнать, как Swing определяет размеры этих областей, но до сих пор я не нашел объяснения этому.