Efecto boton pulsado en processing... SOLUCIONADO

Buenas a todos... No se si aqui serà en mejor sitio para dejar esta consulta sobre processing, pero esque no he encontrado un sitio mejor.... El foro de processing esta muerto....

Estoy haciendo un visor de datos y de control en mi proyecto ( proyecto RiCino en lisergio.wordpress.com) y quiero dar el efecto de que se ha pulsado un boton al haver click con el raton, ... Ya tengo las dos imagenes del boton, sin pulsar y pulsado...
Logro poner la primera, incluso que cambie cuando hago click con el raton, pero despues ya no puedo volver a la imagen inicial....
Alguien que me de una idea....?

El proyecto es basicamente un lector de los mensajes que le llegan por el puerto serie, y 4 botones que envian un mensaje por el puerto para que lo lea mi placa arduino....

Aqui dejo el código... (primero sale la lista de puertos disponibles para la conexion y una vez elegido se abre el programa...)

import processing.serial.;
import ddf.minim.
;

Serial myPort;
int fila=15;
AudioPlayer player;
Minim minim;
int ancho = 1200;
int alto = 650;
PFont f;
PFont f2;
String letras = "";
int puerto;
String[] port_list;
int num_port;
char num;
int linea= 0;
int vuelta=1;
PImage img;
PImage img2;

void setup()
{
f = createFont("Arial",26,true);
f2 = createFont("Arial Black",26,true);
num_port = Serial.list().length;
background(0,0,0);
size(ancho,alto);
int y=80;
fill(255,255,255);
textFont(f2,30);
text("Selecciona un puerto", 50, 50);
textFont(f,15);
for (int i=0;i<num_port;i++)
{
text(i,50,y);
text("-",70,y);
text(Serial.list(),90,y);

  • y=y+20;*
  • }*
    }
    void setup2 ()
    {
  • background(0,0,0);*
  • size(ancho, alto); *
  • f = createFont("Arial",16,true);*
  • f2 = createFont("Arial Black",16,true);*
  • minim = new Minim(this);*
  • myPort = new Serial(this, Serial.list()[puerto], 9600);*
  • myPort.bufferUntil('\n');*
  • fill(7,70,250);*
  • rect(200,50,800,300);*
  • fill(255,0,0);*
  • img = loadImage("boton.jpg");*
  • img2= loadImage("boton2.jpg");*
  • image(img, 550, 412);*
  • image(img, 550, 537);*
  • image(img, 150, 475);*
  • image(img, 950, 475);*
    }
    void draw ()
    {
    }
    void serialEvent (Serial myPort)
    {
  • String inString = myPort.readStringUntil('\n');*
  • String[] list = split (inString, '|');*
  • fill(7,70,250);*
  • rect(200,50,800,300);*
  • fill(255,255,255);*
  • textFont(f,80);*
  • text(list[0],250,150);*
  • text(list[1],250,290);*
  • delay(100);*
    }
    void keyPressed()
    {

if (key == '0')

  • {*

  • puerto=0;*

  • setup2();*

  • }*
    if (key == '1')

  • {*

  • puerto=1;*

  • setup2();*

  • }*
    if (key == '2')

  • {*

  • puerto=2;*

  • setup2();*

  • }*
    if (key == '3')

  • {*

  • puerto=3;*

  • setup2();*

  • }*
    if (key == '4')

  • {*

  • puerto=4;*

  • setup2();*

  • }*
    if (key == '5')

  • {*

  • puerto=5;*

  • setup2();*

  • }*
    if (key == '6')

  • {*

  • puerto=6;*

  • setup2();*

  • }*
    if (key == '7')

  • {*

  • puerto=7;*

  • setup2();*

  • }*
    if (key == '8')

  • {*

  • puerto=8;*

  • setup2();*

  • }*
    if (key == '9')

  • {*

  • puerto=9;*

  • setup2();*

  • } *
    }
    void pushbutton_up()
    {
    }
    void mousePressed()
    {

  • if(mouseX >550 && mouseX<650 && mouseY>412 && mouseY<512)*

  • {*

  • image(img2, 550, 412);*

  • myPort.write("w"); *

  • image(img, 550, 412);*

  • } *

  • if(mouseX >550 && mouseX<650 && mouseY>537 && mouseY<637)*

  • {*

  • image(img, 550, 537);*

  • myPort.write("z");*

  • image(img2, 550, 537);*

  • }*

  • if(mouseX >150 && mouseX<250 && mouseY>475 && mouseY<575)*

  • {*

  • image(img, 150, 475);*

  • myPort.write("a");*

  • image(img, 150, 475);*

  • }*

  • if(mouseX >950 && mouseX<1050 && mouseY>475 && mouseY<575)*

  • {*

  • image(img, 950, 475);*

  • myPort.write("s");*

  • image(img, 950, 475);*

  • } *
    }

Me contesto a mismo.....

Para cambiar la imagen, he añadido mouseReleased y alli he cambiado la imagen de nuevo...

Es decir...

Void mousePressed()
{
Image( img,0,0);
}

Void mouseReleased()
{
Image ( img2,0,0);
}

Asi funciona bien y da el efecto que buscaba...