Başka sınıfların bizim sınıfımıza ActionListener olarak kaydolmalarını ve sınıfımızın iç işleyişi sırasında bir durum oluştuğunda actionPerformed olayını atmak istiyoruz. Bunun için sınıfımızda yapmamız gereken tanımlamalar aşağıdaki gibidir.
public class XYZ {
private ActionListener listenerList;
.....
.....
// diğer sınıflar bu metot aracılığıyla bizim sınıfımızda oluşan olaya kayıt yaptırabilir.
public void addActionListener(ActionListener listener) {
if (listener == null) {
return;
}
listenerList = AWTEventMulticaster.add(listenerList, listener);
}
// diğer sınıflar bizde gerçekleşen olaylardan artık haberdar olmak istemiyorsa bu metodu kullanmalıdır.
public void removeActionListener(ActionListener listener) {
if (listener == null) {
return;
}
listenerList = AWTEventMulticaster.remove(listenerList, listener);
}
// sınıfımızda oluşan durumda olay atmak için bu metodu kullanacağız.
private void fireActionEvent() {
ActionListener listener = listenerList;
if (listener != null) {
// burada isterseniz başka source, id ve command parametreleri geçebilirsiniz.
ActionEvent event = new ActionEvent(this, 0, null);
listener.actionPerformed(event);
}
}
.....
.....
// beklenilen durum gerçekleşti, olay atalım.
fireActionEvent();
.....
.....
}
Hiç yorum yok:
Yorum Gönder