Contoh dalam artikel ini merangkum metode respons peristiwa umum di Java, termasuk pemantauan kelas kontainer, kelas pendengar, AbstrakAksi, refleksi, dll. Untuk referensi Anda. Metode spesifiknya adalah sebagai berikut:
Pertama-tama, dalam antarmuka pengguna grafis Java, langkah-langkah yang diperlukan untuk menangani kejadian adalah :
1. Buat komponen (kontrol) yang menerima respons
2. Menerapkan antarmuka mendengarkan acara yang relevan
3. Daftarkan pendengar tindakan dari sumber peristiwa
4. Pemrosesan peristiwa ketika peristiwa tersebut dipicu
Oleh karena itu, respons terhadap insiden dapat dilakukan dengan cara terpusat berikut ini.
1. Pemantauan kelas kontainer <br/>Efek: Klik tiga tombol di formulir untuk mencapai waktu respons yang sesuai.
import java.awt.*; import java.awt.event.*; import javax.swing.*; //Saat mendeklarasikan kelas, tambahkan "implements ActionListener" untuk mengimplementasikan antarmuka mendengarkan. kemudian Pisahkan dengan koma // Misalnya, "implements ActionListener,KeyListener" class ButtonListener extends JFrame mengimplementasikan ActionListener{ JButton ok, cancel,exit; //Buat komponen yang menerima respons, yaitu tiga tombol publik ButtonListener(String judul){ super(judul); this.setLayout(new FlowLayout()); ok = new JButton("OK"); ; //Tiga pernyataan berikut mendaftarkan pendengar untuk tombol ok.addActionListener(this); getContentPane().add(ok); getContentPane().add(cancel); getContentPane().add(exit); //Selesaikan pemrosesan event ketika event dipicu public void actionPerformed(ActionEvent e){ if(e. getSource ()==ok) System.out.println("OK"); if(e.getSource()==cancel) System.out.println("Kembali"); if(e.getSource()==exit) System.exit(0);; } public static void main(String args[]) { ButtonListener pd=new ButtonListener("ActionEvent Demo"); pd.setVisible(benar);
2. Kelas pemantauan menyadari efeknya: klik tiga tombol di formulir untuk mewujudkan waktu yang sesuai.
import java.awt.*; import java.awt.event.*; import javax.swing.*; class ButtonListener1 extends JFrame {//Tidak ada implementasi pemantauan JButton di sini oke, batalkan, keluar; { super( judul); this.setLayout(new FlowLayout()); ok = new JButton("OK"); = new JButton("Exit"); ok.addActionListener(new MyListener()); getContentPane().add(ok); getContentPane().add(batal); getContentPane().add(keluar); public static void main(String args[]) { ButtonListener pd=new ButtonListener("ActionEvent Demo"); pd.setSize(250,100); pd.setVisible(true); e .getActionCommand()=="OK") System.out.println("OK"); if(e.getActionCommand()=="Kembali") Sistem.keluar.println("Kembali"); if(e.getActionCommand()=="Keluar") Sistem.keluar(0);;
3. Gunakan kelas AbstrakAction untuk mengimplementasikan pemantauan
Efek: Klik menu untuk merespons
impor java.awt.BorderLayout; impor java.awt.event.ActionEvent; impor javax.swing.AbstractAction; impor javax.swing.Action; ; impor javax.swing.JMenuItem; impor javax.swing.JOptionPane; //Kelas ini mewarisi abstractAction dan harus mengimplementasikan metode actionPerformed(). class AbstrakEvent extends AbstrakAction{ //private static final long serialVersionUID = 1L; AbstrakEvent(){ } public void actionPerformed(ActionEvent e){ //Muncul kotak dialog konfirmasi if (e.getActionCommand()=="open"){ JOptionPane . showMessageDialog(null, "buka"); }lain jika (e.getActionCommand()=="tutup"){ JOptionPane.showMessageDialog(null, "Tutup"); }lain jika (e.getActionCommand()=="jalankan"){ JOptionPane.showMessageDialog(null, "Jalankan"); stop"){ JOptionPane.showMessageDialog(null, "stop"); } } } public class TestAbstractEvent { private static menubar JMenuBar; bingkai JFrame statis pribadi; // Pengendali khusus untuk menentukan MenuEvent diselesaikan oleh kelas AbstrakEvent. Aksi terakhir MenuEvent=new abstractEvent(); public TestAbstractEvent(){ frame=new JFrame("menu"); frame.getContentPane().setLayout(new BorderLayout()); ("file"); //Membuat instance item menu dan menambahkan pendengar untuk openAction, JMenuItem menuItemopen=new JMenuItem("buka"); menuItemopen.addActionListener(MenuEvent); JMenuItem menuItemclose=baru JMenuItem("tutup"); menuItemclose.addActionListener(MenuEvent); "); JMenuItem menuItemrun=JMenuItem baru("jalankan"); menuItemrun.addActionListener(MenuEvent); JMenuItem menuItemstop=JMenuItem baru("stop"); .tambahkan(menuFile); menubar.add(menuTool); menubar.setVisible(true); frame.add(menubar,BorderLayout.NORTH); frame.setSize(400,200); { TestAbstractEvent();
4. Kelas AbstrakAksi + metode refleksi <br/>Efek: Klik tiga tombol pada toolbar, dan melalui nama tombol, refleksi akan mendapatkan respons implementasi kelas dengan nama yang sama dengan nama tombol tersebut.
impor java.awt.BorderLayout; impor java.awt.event.ActionEvent; impor javax.swing.*; kelas ViewAction extends AbstrakAction{ private String ActionName=""; ViewAction(){ } public ViewAction(String ActionName){ this.ActionName=ActionName; //ini.frame=frame } @Override public void actionPerformed(ActionEvent e) { Tindakan tindakan=getAction(this.ActionName); tindakan.execute(); } tindakan pribadi getAction(String ActionName){ coba{ jika (ini.aksi==null){ Tindakan tindakan=(Aksi)Kelas .forName(ActionName).newInstance(); this.action=action; } mengembalikan this.action; }catch(Exception e){ mengembalikan null; extends JFrame { public JToolBar bar=new JToolBar(); String buttonName[]={"b1","b2","b3"}; public TestAE(){ super("Acara"); i<buttonName.length;i++){ Aksi ViewAction=ViewAction baru(Namatombol[i]); button.addActionListener(aksi); bar.add(tombol); } this.getContentPane().add(bar,BorderLayout.NORTH); this.setSize(300, 200); benar); } public static void main(String [] args){ new TestAE(); eksekusi(); } kelas b1 mengimplementasikan Tindakan{ public void eksekusi(){ JOptionPane.showMessageDialog(null, "b1 telah diklik"); telah diklik"); } } kelas b3 mengimplementasikan Tindakan{ public void mengeksekusi(){ JOptionPane.showMessageDialog(null, "Diklik b3"); } }
Contoh-contoh di atas telah dijelaskan dengan baik dan tidak sulit untuk dipahami. Saya harap contoh yang dijelaskan dalam artikel ini dapat bermanfaat bagi semua orang.