عندما تقوم بتصميم الواجهة، تحتاج دائمًا إلى إضافة إجراءات التنفيذ المقابلة للمكونات. هناك آلية معالجة الوقت المقابلة في JAVA، تسمى "المستمع". تسمى عملية إضافة إجراءات التنفيذ المقابلة إلى المكونات "التسجيل". حيث يكون "المستمع" عبارة عن واجهة تحتوي على وظائف التنفيذ المقابلة، ما عليك فعله هو تنفيذ وظائف الطريقة بنفسك، ثم "تسجيلها" في المكون، بعبارات عامة، طلبت مني والدتي شراء صلصة الصويا ، وهي لا تهتم. كنت أتجول في الشوارع لبضعة أيام، وأتفاوض مع رئيستي، وأعود إلى المنزل. والنتيجة النهائية التي تحتاجها أمي هي أن أتمكن من توصيل صلصة الصويا إلى يديها شراء صلصة الصويا خلال الفصل الدراسي أنا آلية معالجة الحدث. "المستمع" في الداخل يقبل تعليمات والدتي. عندما تطلب مني والدتي شراء صلصة الصويا، فإنه "يسجل" الحدث لي، مرة أخرى بشكل مثالي يعكس الفصل بين التنفيذ والواجهة في JAVA.
تتضمن أحداث المكونات في JAVA ActionEvent، وKeyEvent، وFocusEvent، وComponentEvent، وMouseEvent، وAdjustmentEvent، وما إلى ذلك. يدعم كل مكون كل الأحداث أو جزء منها، ويحتوي على مستمع مطابق لمراقبة حدوث الحدث وتنفيذ طريقة الواجهة والبرنامج ما يجب على العضو فعله هو إنشاء كائن فئة حدث، وتنفيذ الوظائف فيه، ثم تسجيله باستخدام المكون المقابل، وإليك عرضًا توضيحيًا للكود:
انسخ رمز الكود كما يلي:
استيراد javax.swing.*;
import java.awt.*;
import java.awt.event.*;
الطبقة العامة ButtonDemo {
PrivateJFrame
frame=new JFrame("ButtonDemo");
PrivateJButton
b1 = جديد JButton("الزر 1")،
b2 = new JButton("Button 2");
PrivateJTextField
txt = new JTextField(10);
// هنا فئة مجهولة تستخدم لمراقبة الأزرار.
خاص ActionListener bl = جديد ActionListener() {
// تنفيذ الوظيفة المجردة في فصل الاستماع
إجراء باطل عام (ActionEvent e) {
اسم السلسلة = ((JButton)e.getSource()).getText();
txt.setText(name);
}
};
عرض الزر العام () {
// قم بتسجيل كائن الاستماع على الزرين
b1.addActionListener(bl);
b2.addActionListener(bl);
frame.setLayout(new FlowLayout());
frame.add(b1);
fram.add(b2);
frame.add(txt);
frame.setVisible(true);
frame.setSize(200,150);
}
public static void main(String[] args) {
جديد ButtonDemo ()؛
}
}
إذا كان هناك أكثر من وظيفة في واجهة الاستماع، وأريد فقط تنفيذ وظيفة واحدة فقط، فمن الواضح أن البرنامج لا يمكن تشغيله، لأنه يجب عليك تنفيذ جميع الوظائف في الواجهة قبل أن يتم تجميعه وإخراج البرنامج يمكننا الركض، ماذا علينا أن نفعل؟ هاها، من الواضح أن مصممي لغة JAVA قد أخذوا ذلك في الاعتبار، لذلك قاموا بتوفير شخص يسمى "المحول"، والذي ينفذ جميع الوظائف في الواجهة افتراضيًا، ويرث فئة "المحول"، ويتجاوز الوظيفة التي تهتم بها. هذا كل شيء:
انسخ رمز الكود كما يلي:
فئة MyMouseListener تمتد MouseAdapter {
الماوس العام الفارغ (MouseEvent e) {
//نفذ الإجراء عند النقر بالماوس
}
}