Hmm! well I can think of the following line :
//Get the pic...
thePicBuffer = rs.getBytes(1);
I think I have to do loops here .... what do you think?
BTW what about SwingWorker ? as far as I remember it has a cancel() method, and it's also now part of java 6.