سؤال

السؤال الأساسي بدلا من الرجال هنا.

في الأساس لدي رمز مثل هذا:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(panel2(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}

وأن كل شيء يعمل بشكل جيد وجيد. المشكلة هي أن لدي جزء آخر أود أن أضيف إلى المركز. فقط باستخدام add(newPanel(), BorderLayout.CENTER) لا يعمل، من الواضح. ولكن يمكنك إضافة JPanelS في JPanelS، صحيح؟

لذلك اتخذت التغيير التالي:

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;
    }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top