ActionPerformed ???

Cris
13 de Mayo del 2004
Hola!

Os cuento mi problema, a ver si alguien me puede orientar un poco.
Tengo una aplicación que tiene un canvas ( otra clase q he hecho yo q hereda de Canvas...)
y m gustaria ponerla un ActionListener como hago con los botones de la aplicación.Quiero hacerlo
en la applicación y no en la clase micanvas porque lo que tiene que hacer hace referencia a clases
que la clase micanvas no conoce.

He probado con lo siguiente, pero me da error. Por favor, cualquier tipo de ayuda será buena.

canvas1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
canvasActionPerformed(evt);
}
});

private void canvasActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("Gracias por tu ayuda!");
}

NullPointer
13 de Mayo del 2004
Hola
ActionListener es un Interface, por lo que no podras usar el operador new para crearlo. Lo que tienes que hacer es una de tus clases "implemente" el interface, y que esa misma clase contenga el metodo
public void actionPerformed(ActionEvent ev)

Cris
13 de Mayo del 2004
Perdona pero no entiendo muy bien lo que me dices, d todas formas supongo que ese no es el problema, pues para los botones lo hago así y no hay ningun problema, cuando los pulso hacen lo q deben.Con esto ( lo del canvas) ni siquiera compila.
De todas formas Muchas gracias, pero sigo igual

Cris
13 de Mayo del 2004
Hola!

Ya solucione mi problema era una tonteria , resulta
que el canvas no tiene el ActionPerformed y habia
que hacerlo con mouseClicked, aqui os dejo la solución, x si alguien algun día tiene este mismo problema .Ciao

micanvas.setBackground(java.awt.Color.white);
micanvas.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
micanvasMouseClicked(evt);
}
});

private void micanvas1MouseClicked(java.awt.event.MouseEvent evt) {
// Aqui pones tu código.
}