La carga de imágenes es asíncrona.
http://www.chuidiang.com/chuwiki/ind..._im%C3%A1genes Cita: Cuando llamamos a cualquiera de estos métodos para cargar la imagen, la carga puede tardar y se hace en "background". Cualquiera de estos métodos nos devuelve el control inmediatamente, aunque la imagen todavía no se ha cargado.
El resultado es que nuestra ventana puede aparecer sin nuestra imagen y no aparecer hasta que le hagamos un refresco, bien desde código, bien "estirando" la ventana con el ratón o cualquier otro método.
jf.getContentPane().repaint();
Saludos,