سؤال

يتم حظر رمز ماتيس من نيتبانز.المشكلة لدي هي أنني يجب أن setBackground إلى أ JLabel من فئة أخرى في حزمة مختلفة ولكن لا أستطيع أن أفعل هذا لأنني لا أملك الوصول إلى JLabel نظرا لرمزها الخاص والمحظور.

هل ثار أي حل لهذا?

هل كانت مفيدة؟

المحلول

"يتم حظر رمز ماتيس من نيتبانز"

يمكنك تحريره كما رأينا هنا

"لأنني لا أملك الوصول إلى جلابيل بسبب رمزها الخاص والمحظور"

مجرد كتابة getter طريقة التسمية في الفئة الأخرى

public class OtherClass .. {
    private JLabel jLabel1;

    public JLabel getLabel() {
        return jLabel1;
    }
}

import otherpackage.OtherClass;

public class MainFrame extends JFrame {
    private OtherClass otherClass;
    ...
    private void jButtonActionPerformed(ActionEvent e) {
         JLabel label = otherClass.getLabel();
         label.setBackground(...)
    }
}

"الوصول إلى مكون جفريم من فئة أخرى"

يبدو أنك تستخدم إطارات متعددة.انظر استخدام جفراميس متعددة, ممارسة جيدة / سيئة?


تحديث

"لدي الإطار الرئيسي المحرز في ماتيس ولكن نظرا لبعض الأسباب لا بد لي من تعيين خلفية حقل النص داخل ماتيس من فئة أخرى عندما يحدث التحقق من صحة س في فئة أخرى"

ما يمكنك القيام به بعد ذلك هو تمرير إشارة من Main الإطار إلى فئة أخرى ، ولها setter في ال Main الإطار.شيء من هذا القبيل (وسوف توفر واجهة للوصول)

public interface Gettable {
    public void setLabelBackground(Color color);
}

public class Main extends JFrame implements Gettable {
    private JLabel jLabel1;
    private OtherPanel otherPanel;

    public void initComponents() {
        otherPanel = new OtherPanel(Main.this); // see link above to edit this area
    }

    @Override
    public void setLabelBackground(Color color) {
        jLabel1.setBackground(color);
    }
}

public class OtherPanel extends JPanel {
    private Gettable gettable;

    public OtherPanel(Gettable gettable) {
        this.gettable = gettable;
    }

    private void jButtonActionPerformed(ActionEvent e) {
        gettable.setLabelBackground(Color.RED);
    }
}

نصائح أخرى

  • إنشاء مستمع للفئة مع جلابيل مع طريقة لتغيير خلفية التسمية
  • تنفيذه في الفصل حيث يتم استخدام جلابيل
  • تعيين المستمع من فئة أخرى ( التي تريد تغيير بغ) ليكون المستمع من الطبقة مع جلابيل
  • تغيير الخلفية بعد أي وظيفة تريد.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top