Rumah >Java >javaTutorial >Apakah proses pemprosesan acara yang dilaksanakan oleh Java AWT?
Pemprosesan acara terutamanya untuk bertindak balas terhadap operasi pengguna
Objek acara (Acara ) : Merangkum peristiwa tertentu yang berlaku pada komponen GUI (biasanya operasi oleh pengguna).
Sumber acara (komponen): Tempat peristiwa berlaku, biasanya komponen yang menjana acara
Pendengar: Bertanggungjawab mendengar peristiwa Peristiwa yang berlaku pada sumber dan objek yang mengendalikan pelbagai peristiwa dengan sewajarnya (objek mengandungi pengendali peristiwa).
Pengendali acara: Objek pendengar mengendalikan objek acara yang diterima dengan sewajarnya.
Kelas pendengar acara MyWindowListener yang melaksanakan antara muka WindowListener dicipta dalam program mengikat tetingkap kepada objek pendengar melalui kaedah addWindowListener(), mengklik butang tutup akan mencetuskan kaedah windowClosing() objek pendengar, menyembunyikan dan melepaskan tetingkap semasa, sekali gus menutup tetingkap.
Kod adalah seperti berikut
package AWT; import java.awt.*; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Example08 { public static void main(String[] args) { Frame f=new Frame("我的世界"); f.setSize(400,300); f.setLocation(300,200); f.setVisible(true); //给窗口注册一个监听器 MyWindowListener mw=new MyWindowListener(); f.addWindowListener(mw); } } class MyWindowListener implements WindowListener{ @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { Window window= e.getWindow(); window.setVisible(false); window.dispose(); } @Override public void windowClosed(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { } @Override public void windowDeiconified(WindowEvent e) { } @Override public void windowActivated(WindowEvent e) { } @Override public void windowDeactivated(WindowEvent e) { } }
Hasil
Untuk menyelesaikan masalah kosong pelaksanaan kaedah yang dijana, jdk Beberapa kelas penyesuai disediakan, yang merupakan kelas pelaksanaan lalai antara muka pendengar ini melaksanakan semua kaedah dalam antara muka, tetapi tidak ada kod dalam kaedah ini melaksanakan antara muka pendengar dengan mewarisi kelas penyesuai.
package AWT; import java.awt.*; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Example08 { public static void main(String[] args) { Frame f=new Frame("我的世界"); f.setSize(400,300); f.setLocation(300,200); f.setVisible(true); //给窗口注册一个监听器 MyWindowListener mw=new MyWindowListener(); f.addWindowListener(mw); } } //继承WindowAdapter类,重写windowClosing()方法 class MyWindowListener1 extends WindowAdapter { @Override public void windowClosing(WindowEvent e) { Window window=(Window) e.getComponent(); window.dispose(); } }
Memandangkan kelas MyWindowListener mewarisi kelas penyesuai WindowAdapter, dan kerana fungsinya adalah untuk menutup tetingkap, anda hanya perlu menulis semula kaedah windowClosing() Hampir semua antara muka pendengar mempunyai kelas penyesuai yang sepadan penyesuai Apabila kelas melaksanakan antara muka pendengar dan perlu mengendalikan peristiwa tersebut, teruskan mengatasi kaedah yang sepadan dengan acara tersebut.
Gunakan kelas dalam tanpa nama untuk melaksanakan pemprosesan acara
Dalam penyesuai acara di atas, objek sumber acara dipantau dengan mewarisi kelas penyesuai, tetapi untuk kesederhanaan kod, kelas dalam tanpa nama boleh digunakan untuk mencipta peristiwa Objek pendengar mengendalikan peristiwa yang berlaku.
Tambah butang dengan acara klik pada tetingkap
package AWT; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class NiMing { public static void main(String[] args) { Frame f=new Frame("我的世界"); f.setSize(400,300); f.setLocation(300,200); f.setVisible(true); Button btn=new Button("Exit"); f.add(btn); btn.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { System.exit(0); } }); } }
Pertama, kaedah addMouseListner() btn telah dipanggil Dalam kaedah ini, pendengar acara tetikus telah didaftarkan untuk butang menggunakan kaedah kelas dalaman tanpa nama Kerana kita hanya perlu memantau acara klik butang, kami menggunakan kelas penyesuai MouseAdapter dan menulis semula kaedah mouseClicked() Apabila butang diklik, acara klik akan dihantar kepada pendengar acara membantah untuk keluar dari program.
Atas ialah kandungan terperinci Apakah proses pemprosesan acara yang dilaksanakan oleh Java AWT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!