ActionListener sinifi

 ActionListener Sinifi, Java.awt.event paketinin içinde bulununan bir interface’dir. Butonu tiklamak, checkbox’u isaretlemek gibi islemleri bu interface sayesinde yönetiriz.

ActionListener sinifi içerisinde actionPerformed metodunu barindirir. Bir ActionListener nesnesi yazdigimiz zaman bu metodu iptal etmemiz (override) gerekir.
 
Bu makalede ActionListener sinifinin üç degisik kullanim yolunu göstermeye çalisacagim.
 
Birinci yöntem: Ana sinifimiza implemente ederek…
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.*;
 
publicclass ActionListenerSinifi extends JFrame implements ActionListener{
 
                publicstaticvoid main(String[] arg){
                               ActionListenerSinifi als = new ActionListenerSinifi();
                               als.setVisible(true);
                               als.setDefaultCloseOperation(als.EXIT_ON_CLOSE);
                }
                JButton btn1;
               
                public ActionListenerSinifi(){
                               setLayout(new FlowLayout());
                              
                               btn1 = new JButton("buton-1");
                               add(btn1);
                               btn1.addActionListener(this);
                              
                               pack();
                }             
 
                publicvoid actionPerformed(ActionEvent e) {
                               System.out.println("butona tiklandi");
                }
}
 
btn1.addActionListener(this);
Burada parametre olarak ‘this’ nesnesini, yani sinifin kendisini verdik. Bunu yapabiliriz zira zaten ‘this’ (yani sinifin kendisi) ayni zamanda bir ActionListener sinifi sayilir. Çünkü tanimlarkan implements Actionlistener ifadesini kullanmistik.
 
Ikinci yöntem: Yeni bastan bir ActionListener sinifi yazarak…
 
publicclass ActionListenerSinifi2 extends JFrame {
               
                publicstaticvoid main(String[] arg){
                               ActionListenerSinifi2 als2 = new ActionListenerSinifi2();
                               als2.setVisible(true);
                               als2.setDefaultCloseOperation(als2.EXIT_ON_CLOSE);
                }
               
                JButton btn2;
               
                public ActionListenerSinifi2(){
                               setLayout(new FlowLayout());
                              
                               btn2 = new JButton("buton-2");
                               add(btn2);
                               btn2.addActionListener(new ActionListenerKlas());
                              
                               pack();
                }
               
                privateclass ActionListenerKlas implements ActionListener{
                               publicvoid actionPerformed(ActionEvent e){
                                               System.out.println("buton-2 tiklandi");                                        
                               }
                }
}
 
Bu sefer ana sinifimiza implemente etmeden baska bir (dahili veya harici) sinif yazip ona implemente ederek ActionListener nesnesini olusturduk ve parametre olarak o olusturdugumuz sinifi verdik.
btn2.addActionListener(new ActionListenerKlas());
 
 
Üçüncü yöntem: Parametreyi ‘sinif’ olarak vermek…
Madem parameter olarak bir ActionListener nesnesi (sinifi) vermemiz lazim, o zaman biz de parametreyi oracikta yaziveririz.
.
 
publicclass ActionListenerSinifi3 extends JFrame {
               
                publicstaticvoid main(String[] arg){
                               ActionListenerSinifi3 als3 = new ActionListenerSinifi3();
                               als3.setVisible(true);
                               als3.setDefaultCloseOperation(als3.EXIT_ON_CLOSE);
                }
               
                JButton btn3;
               
                public ActionListenerSinifi3(){
                               setLayout(new FlowLayout());
                              
                               btn3 = new JButton("buton-3");
                               add(btn3);
                               btn3.addActionListener(new ActionListener() {
                                              
                                               publicvoid actionPerformed(ActionEvent e) {
                                                               System.out.println("buton-3 tiklandi");
                                               }
                               });
                              
                               pack();
                }             
}
 
Parametreyi yazmaktan kastim suydu:
btn3.addActionListener(new ActionListener() {
                                              
                                               publicvoid actionPerformed(ActionEvent e) {
                                                               System.out.println("buton-3 tiklandi");
                                               }
                               });
 
 
Her üç durumda da yaptigimiz sey aslinda ayni: btn.addActionListener(parametere);
Parametre olarak herhangi bir ActionListener nesnesi verdik mi bu is tamamdir.
 

3 thoughts on “ActionListener sinifi

  1. Su linkte bu istedigin bir yöntemi kullanan bir örnek var; ama belki biraz karisik gelebilir. Anlamazsan sorabilirsin tabi ki.

    mskunt2013-01-04 06:14:08

  2. Bunlardan birini kullanarak yapabilirsin. Örnegin söyle yapabilirsin:
    actionPerformed(ActionEvent evt){
       if (evt.getSource().equals("Tamam")
          System.out.println("tamam tusuna tiklandi");
       else if(evt.getSource().equals("iptal")
         System.out.println("iptal tusuna tiklandi");
    }

    Not: Tirnak içine aldigim isimler butonlarin ismi degil üzerindeki etikettir.

  3. peki 100 tane butonumuz olsa ve bu bu butonlar kontrol etmek istersek nasil yapariz…simdiden tesekkürler…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir