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