"Throwable Events" to stosunkowo nowa technika obsługi zdarzeń w języku Java, która może służyć jako zamiennik starego i niewygodnego systemu "listenerów". Główną zaletą jest większa przejrzystość kodu (nie trzeba dodawać setek addFooListener), oraz łatwość implementacji w programach korzystających z wielu wątków.
Przykładowa implementacja
Klasa Button:
public class Button extends JButton {
public Button(String text) {
super(text);
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
throw new ClickEvent(e.getSource());
}
} );
}
}
Klasa ClickEvent:
public class ClickEvent extends RuntimeException {
private Object source;
public ClickEvent(Object source) {
this.source = source;
}
public Object getSource() { return source; }
}
Przykład użycia
Czytaj dalej...