Ketika Anda telah mendesain antarmuka, Anda selalu perlu menambahkan tindakan eksekusi yang sesuai ke komponen. Ada mekanisme pemrosesan waktu yang sesuai di JAVA, yang disebut "pendengar". Proses menambahkan tindakan eksekusi yang sesuai ke komponen disebut "registrasi", di mana "Listener" adalah sebuah antarmuka, yang berisi fungsi eksekusi yang sesuai. Yang perlu Anda lakukan adalah mengimplementasikan sendiri fungsi metode tersebut, dan kemudian "mendaftarkannya" ke komponen membeli saus. Minyak, ibuku tidak peduli berapa hari aku akan berjalan-jalan, bagaimana aku akan tawar-menawar dengan bos, atau bagaimana aku akan pulang. Hasil akhir yang dibutuhkan ibuku adalah aku bisa mengantarkan kecap padanya tangan. Proses pembelian kecap selama semester itu saya sadari, saya adalah “pendengar” dalam mekanisme pemrosesan acara dan menerima instruksi ibu saya. Ketika ibu saya meminta saya untuk membeli kecap, dia “mendaftarkan” acara tersebut bagi saya. Haha, sekali lagi ini mencerminkan pemisahan implementasi dan antarmuka di JAVA dengan sempurna.
Peristiwa komponen di JAVA termasuk ActionEvent, KeyEvent, FocusEvent, ComponentEvent, MouseEvent, AdjustmentEvent, dll. Setiap komponen mendukung semua atau sebagian peristiwa. Peristiwa terkait memiliki Pendengar yang sesuai untuk memantau terjadinya peristiwa dan mengimplementasikan metode antarmuka, program Yang harus dilakukan anggota adalah membuat objek kelas acara, mengimplementasikan fungsi di dalamnya, dan kemudian mendaftarkannya ke komponen yang sesuai. Berikut adalah demonstrasi kodenya:
Copy kode kodenya sebagai berikut:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
Demo Tombol kelas publik {
pribadiJFrame
frame=JFrame baru("TombolDemo");
privateJButton
b1 = JButton baru("Tombol 1"),
b2 = JButton baru("Tombol 2");
pribadiJTextField
txt = JTextField baru(10);
//Ini adalah kelas anonim yang digunakan untuk memonitor tombol.
pribadi ActionListener bl = ActionListener baru() {
//Menerapkan fungsi abstrak di kelas mendengarkan
public void actionPerformed(ActionEvent e) {
Nama string = ((JButton)e.getSource()).getText();
txt.setText(nama);
}
};
Demo Tombol publik () {
//Daftarkan objek mendengarkan ke dua tombol
b1.addActionListener(bl);
b2.addActionListener(bl);
frame.setLayout(FlowLayout baru());
frame.add(b1);
frame.add(b2);
frame.add(txt);
frame.setVisible(benar);
bingkai.setSize(200,150);
}
public static void main(String[] args) {
ButtonDemo baru();
}
}
Jika ada lebih dari satu fungsi di antarmuka pendengaran, dan saya hanya ingin mengimplementasikan salah satu fungsi tersebut, jelas program tidak dapat berjalan, karena Anda harus mengimplementasikan semua fungsi di antarmuka sebelum dapat dikompilasi dan program bisa lari. Bangun, apa yang harus kita lakukan? Haha, jelas para perancang bahasa JAVA telah mempertimbangkan hal ini, jadi mereka menyediakan seseorang bernama "Adapter", yang mengimplementasikan semua fungsi di antarmuka secara default, mewarisi kelas "Adapter", dan mengganti fungsi yang Anda minati. Itu saja:
Copy kode kodenya sebagai berikut:
kelas MyMouseListener memperluas MouseAdapter{
public void mouseClicked(MouseEvent e){
//Realisasikan tindakan saat mouse diklik
}
}