У меня есть JFrame, в который я вставляю JPanel для отображения изображения, в данном случае 1024x1025. Проблема, на которую я не могу найти ответ, заключается в том, как обеспечить, чтобы мой содержащий JFrame отображал все изображение / JPanel. У меня есть что-то близкое к этому примеру:
ImagePanel view = new ImagePanel(); //extends JPanel
JFrame Container = new JFrame();
view.setSize(1024, 1025);
container = new JFrame(winTitle);
container.setLayout(new BorderLayout());
container.setSize(view.getSize());
container.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
container.add(view);
container.setVisible(true);
Проблема с этим, очевидно, заключается в том, что JFrame украшен базовой ОС, поэтому я не знаю, сколько пикселей сделать его больше, чем размер JPanel от системы к системе. Как и сейчас, изображение обрезается справа и снизу с помощью нескольких пикселей, каждый из которых установлен в JFrame с тем же размером, что и JPanel. Есть ли способ сказать JFrame прочитать размер Jpanel, который он содержит, и сделать его достаточно большим, чтобы отобразить весь JPanel? Спасибо!
EDIT
Установка предпочтительного размера на панелях изображений, затем установка размера (не предпочтительно) для контейнера, затем упаковка после добавления дает мне поведение, которое я хотел. Может кто-нибудь объяснить, что здесь происходит, я все еще немного нечетко по порядку операций с некоторыми компонентами колебания.