Um mit einer Canvas-Subklasse ein eigenes GUI-Element realisieren zu
können (siehe Bsp. cButton), möchte ich daraus Events abfeuern
können, wie es die AWT-Standard-Dialogelemente auch tun. Ich dachte,
das müsse doch eine grundlegende „every day task“ sein. Jedoch
konnten mir weder Kollegen, Google noch Bücher weiterhelfen. Nun
ist’s an euch!
Dieses Applet setzt das GUI-Element ein und soll davon ein
ActionEvent empfangen:
public class CustomButtonTest extends Applet implements
ActionListener {
cButton cb;
public void init() {
cb = new cButton(80,80,new Color(205,20,0));
add(cb);
// bei cButton irgendwie für Event-Empfang registrieren
cb.addActionListener(this);
}
// dieser Event-Handler soll dann von cButton gefeuert werden
public void actionPerformed(ActionEvent e) { Aktion }
cButton verarbeitet MouseEvents und soll am Schluss ein ActionEvent
absetzen:
public class cButton extends Canvas implements MouseListener {
public cButton(int width, int height, Color col) {
...
addMouseListener(this);
}
public void paint (Graphics g) { Zeichnen }
// muss ich das so selber schreiben?
public void addActionListener(ActionListener l) {
// was tun?
}
public void mouseClicked(MouseEvent e) {
// hier soll das ActionEvent an registrierte Interessenten
// abgefeuert werden
// villeicht irgendwie so?
dispatchEvent(new ActionEvent(this, AWTEvent.RESERVED\_ID\_MAX +
1, ""));
}
// weitere Event-Handler
Ich hoffe es wird einigermassen klar, worauf ich hinaus will.
Irgendwelche Ideen?