GIF animado en un JButton, reprodúzcalo cuando el mouse esté sobre el mouse

Icon icon = new ImageIcon(getClass().getResource( "/img/icon.gif" ) );
aButton = new JButton("Its a button", icon);

¿Hay algún tipo de método que pueda detener la reproducción de una animación? Estaba pensando en asignar un jpg estático del gif, luego, cuando muevo el mouse, asigno el gif animado, pero no creo que haya un evento para quitar el mouse.MouseMotionListener así que puedo volver a cargar el jpg estático.

El gif se desplaza en el botón, sin embargo, si me desplazo sobre él, desaparece.

¿Cómo puedo hacer que el gif estético si el cursor de mi mouse no está en el botón?

Si yo usoMouseMotionListener, ¿dispara un evento si me quito el mouse?

@Override
public void mouseMoved(MouseEvent e) {
//play the gif
//if I take mouse off, call some method to stop playing animated gif
}

@Override
public void mouseDragged(MouseEvent e) {
}