كيفية تغيير حجم Auto JFrame وفقا للمحتوى
-
20-09-2019 - |
سؤال
لقد أنشأت مخصص JPanel
الذي يعرض الصور (يتيح الاتصال به MyPanel
)، لقد أضفت هذا إلى JFrame
spontpane.
أريد JFrame
ليتم تغيير حجمها تلقائيا لتناسب MyPanel
عند تغيير الصورة.
يبدو أنني بحاجة إلى الاتصال frame.pack()
لفعل هذا. دعا pack()
من عند MyPanel
يزيد اقتران لذلك لا أريد أن أفعل ذلك.
لحل المشكلة التي قدمتها JFrame
(دعونا نسميها MyFrame
) و مصنوع MyFrame
المراقب، و MyPanel
يمكن ملاحظتها. كلما كانت الصورة MyPanel
يتم عرض التغييرات التي يخطر فيها المستمعين MyFrame
لهذه الحالة. وثم MyFrame
المكالمات pack()
عندما يحصل على الإخطار.
هل هناك طريقة أكثر سلاسة لتغيير حجمها JFrame
وفقا لمحتواه؟
المحلول
الحل الذي وصفته يبدو معقولا.
بدلا من ذلك، عندما يغير MyPanel صورته، يمكن أن يذهب البحث عن إطار الوالدين ثم استدعاء حزمة () عليه. إذا لم يكن هناك مثل هذا الإطار، فلا تفعل أي شيء. لا حاجة لإنشاء فئات إضافية، كما أنها تفقد اقتران كما ستحصل عليه. يمكنك استخدام flowuditures.getancestorofclass () للقيام بذلك بسهولة.