إضافة JPanels إضافية إلى JPanel
سؤال
السؤال الأساسي بدلا من الرجال هنا.
في الأساس لدي رمز مثل هذا:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(panel2(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
وأن كل شيء يعمل بشكل جيد وجيد. المشكلة هي أن لدي جزء آخر أود أن أضيف إلى المركز. فقط باستخدام add(newPanel(), BorderLayout.CENTER)
لا يعمل، من الواضح. ولكن يمكنك إضافة JPanel
S في JPanel
S، صحيح؟
لذلك اتخذت التغيير التالي:
public SuperPanel() {
setLayout(new BorderLayout());
add(panel1(), BorderLayout.NORTH);
add(supersweetpanel(), BorderLayout.CENTER);
add(panel3(), BorderLayout.SOUTH);
}
مع supersweetpanel()
مستخدم:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
setLayout(new BorderLayout());
add(panel2(), BorderLayout.NORTH);
return sswp;
}
الآن يجري panel1
في إذا قمت بتعيينه على أي شيء آخر (CENTER
, SOUTH
, ، ماذا لديك)، تختفي أول فريقان تماما. مساعدة موضع تقدير كبير.
المحلول
SuperPanel
من المرجح أن تكون فرعية من JPanel
, ، الصحيح؟ أنت تضيف بطريق الخطأ panel2
ل this
(ال SuperPanel
)، ليس sswp
. وبعد يحاول:
public JPanel supersweetpanel() {
JPanel sswp = new JPanel();
sswp.setLayout(new BorderLayout());
sswp.add(panel2(), BorderLayout.NORTH);
return sswp;
}
لا تنتمي إلى StackOverflow