Я создал пользовательский JPanel
, который отображает изображения (давайте назовем его MyPanel
), я добавил это в contentPane JFrame
.
Я хочу, чтобы размер JFrame
автоматически изменялся в соответствии с MyPanel
при изменении изображения.
Похоже, мне нужно позвонить frame.pack()
, чтобы сделать это. Вызов pack()
из MyPanel
увеличивает связь, поэтому я не хочу этого делать.
Чтобы решить эту проблему, я расширил JFrame
(назовем это MyFrame
) и сделал MyFrame
наблюдателем и MyPanel
наблюдаемым. Всякий раз, когда изображение MyPanel
отображает изменения, оно уведомляет слушателей, MyFrame
для этого экземпляра. А затем MyFrame
вызывает pack()
, когда получает уведомление.
Существует ли более плавный способ изменения размера JFrame
в соответствии с его содержимым?