Mostrar imágenes aleatorias al presionar botón en JLabel, Java

El día de hoy al despertar aún con sueño y con la boca con un sabor a alcohol, entrando a Google+, encontré una duda sobre como mostrar imagenes aleatorias en java al presionar un botón (JButton) y mostrarlo en un JLabel, y me dí a la tarea para ir despertando un poco de picar un poco de código y aquí se los dejo, quizá al chavo que pregunto ya resolvió su problema pero podría servirle a alguien más.

Feliz sábado y feliz cruda!!!!

[java]
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class imgRandom extends JFrame implements ActionListener{
private JLabel label2; //declaramos nuestro JLabel
JButton boton; //declaramos nuestro botón
String cads[]={"/img/duck.gif","/img/luigi.png","/img/mario.jpg"}; //nuestras imágenes

public imgRandom() throws IOException{
setLayout(null);
label2=new JLabel("press");
label2.setBounds(10,20,100,100);
add(label2);

boton=new JButton("Presioname!!");
boton.setBounds(150,250,200,100);
add(boton);
boton.addActionListener(this);

}

public void actionPerformed(ActionEvent e){
if(e.getSource()==boton){
int ra=(int) (Math.random()*3); //generamos número aleatorio
//indicamos que nuestra imagen está en local y mandamos la ruta
//previamente declarada
URL url=this.getClass().getResource(cads[ra]);
try {
Image img=ImageIO.read(url); //leemos la imagen
label2.setIcon(new ImageIcon(img)); //la asignamos al JLabel de Java
} catch (IOException e1) {
e1.printStackTrace();
}

}
}

public static void main(String ar[]) throws IOException{
imgRandom form=new imgRandom();
form.setBounds(0,0,500,400);
form.setVisible(true);
}
}

[/java]

«Por que la programación debe de ser como las recetas de cocina» [Richard Stallman]

Código fuente e imágenes