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();
.....
.....
}
30 Eylül 2010 Perşembe
Input/Output Stream ve Reader/Writer'lar ile Çalışmak
Input/Output Stream (aynı durum Reader/Writer'lar için de geçerlidir.) değişkeni try/finally bloğundan önce tanımlanmalı, try bloğu içinde oluşturulmalı ve finally bloğu içinde kapatılmalı (close). Catch bloğu tanımlanmamış olsa dahi finally bloğu tanımlanıp bu işlemler yapılmalıdır.
Örnek:
InputStream is = null;
try {
is = new FileInputStream(inputFileName);
is.....
.......
.......
}
finally {
if (is != null) {
try {
is.close();
}
catch (Exception exc) {
// logla
}
}
Örnek:
InputStream is = null;
try {
is = new FileInputStream(inputFileName);
is.....
.......
.......
}
finally {
if (is != null) {
try {
is.close();
}
catch (Exception exc) {
// logla
}
}
Kaydol:
Kayıtlar (Atom)