Foros del Web » Programación para mayores de 30 ;) » Java »

Imagenes desde un directorio

Estas en el tema de Imagenes desde un directorio en el foro de Java en Foros del Web. Hola, estoy intentando cargar el unas imágenes desde un directorio y mostrarlas en un Jpanel. la idea es que pulsando un botón van apareciendo las ...
  #1 (permalink)  
Antiguo 17/08/2014, 10:22
Avatar de zouhirmak  
Fecha de Ingreso: agosto-2014
Ubicación: Malaga
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Información Imagenes desde un directorio

Hola,

estoy intentando cargar el unas imágenes desde un directorio y mostrarlas en un Jpanel. la idea es que pulsando un botón van apareciendo las imágenes de directorio con una pausa de 3 segundos entre imagen e imagen.

solo me aprece la ultima imagen del directorio, es decir se van creando pero no aparecen.una vez que finaliza el bucle aparece la ultima asi como los labels que tengo.

Alguien me puede decir que estoy haciendo mal?


Muchas gracias de antemano. :)
  #2 (permalink)  
Antiguo 17/08/2014, 13:17
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Imagenes desde un directorio

Sino pones el codigo esta complicado.
  #3 (permalink)  
Antiguo 18/08/2014, 02:29
Avatar de zouhirmak  
Fecha de Ingreso: agosto-2014
Ubicación: Malaga
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Imagenes desde un directorio

Hola, gracias :),


Pego el codigo del metodo asociado al evento del boton.lo que deberia hacer el programa es: pulso el boton y se van cargando una despues de otra las imagenes del directorio.y como indico en el anterior mensaje, solo me aparece la ultima imagen que hay en el directorio,cuando sale del for.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String sDirectorio = "C:/Users/ZOUHIR/Documents/Secuencia_imagenes/videofsom/frames/";
//String sDirectorio = "C:/Users/Public/Pictures/Sample Pictures/";


File f = new File(sDirectorio);
if (f.exists()) {
File[] ficheros = f.listFiles();






if (ficheros.length == 0) {

System.out.println("El directorio esta vacio");
jLabel2.setText("No hay imagenes en el directorio ...");


} else {

System.out.println("el numero de elementos en el directorio " + ficheros.length);
Image pic;
ImageIcon imagen;
JLabel eq = new JLabel();
eq.setText("Cargando Imagenes");
eq.setVisible(true);


for (int x = 0; x < ficheros.length; ++x) {

jLabel1.setVisible(true);


try {

pic = cargar_imagen(ficheros[x]);
imagen = crear_icono(pic);
label.setIcon(imagen);
panelp.setSize(400, 400);
label.setSize(200, 200);
label.setVisible(true);
panelp.add(label);
panelp.setEnabled(true);
panelp.setVisible(true);
} catch (IOException ex) {
Logger.getLogger(proimag.class.getName()).log(Leve l.SEVERE, null, ex);
}




titulo.setText(ficheros[x].getName());



this.esperar(5);

System.out.println(ficheros[x].getName());




}
System.out.println("Estoy Fuera del Bucle");
}





} else {
System.out.println("El directorio no existe");
}
}

public void esperar(int segundos) {
try {
Thread.sleep(segundos * 1000);
} catch (Exception e) {
// Mensaje en caso de que falle
}
}

public Image cargar_imagen(File fichero) throws IOException {
return ImageIO.read(fichero);
}

public ImageIcon crear_icono(Image pic) {
return new ImageIcon(pic);
}
  #4 (permalink)  
Antiguo 18/08/2014, 11:44
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Imagenes desde un directorio

Buenas,

-Puedes poner el formato de código? (highlight->Java) Si no es casi imposible de ver sin quemarse los ojos.

-Cual es la salida de consola que da tu programa?

-Porqué en el bucle haces el ++x en lugar de x++?


Un saludo
  #5 (permalink)  
Antiguo 18/08/2014, 12:00
Avatar de zouhirmak  
Fecha de Ingreso: agosto-2014
Ubicación: Malaga
Mensajes: 3
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Imagenes desde un directorio

Hola, perdona ya esta aplicado.

por consola sale que todo ok pero lo que no logro es que se vea el contenido grafico de todos los elementos del directorio.

estoy intentandolo ahora con un una coleccion a ver si sale.

muchas gracias!

Código Java:
Ver original
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  2. // TODO add your handling code here:
  3. String sDirectorio = "C:/Users/ZOUHIR/Documents/Secuencia_imagenes/videofsom/frames/";
  4. //String sDirectorio = "C:/Users/Public/Pictures/Sample Pictures/";
  5.  
  6.  
  7. File f = new File(sDirectorio);
  8. if (f.exists()) {
  9. File[] ficheros = f.listFiles();
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16. if (ficheros.length == 0) {
  17.  
  18. System.out.println("El directorio esta vacio");
  19. jLabel2.setText("No hay imagenes en el directorio ...");
  20.  
  21.  
  22. } else {
  23.  
  24. System.out.println("el numero de elementos en el directorio " + ficheros.length);
  25. Image pic;
  26. ImageIcon imagen;
  27. JLabel eq = new JLabel();
  28. eq.setText("Cargando Imagenes");
  29. eq.setVisible(true);
  30.  
  31.  
  32. for (int x = 0; x < ficheros.length; ++x) {
  33.  
  34. jLabel1.setVisible(true);
  35.  
  36.  
  37. try {
  38.  
  39. pic = cargar_imagen(ficheros[x]);
  40. imagen = crear_icono(pic);
  41. label.setIcon(imagen);
  42. panelp.setSize(400, 400);
  43. label.setSize(200, 200);
  44. label.setVisible(true);
  45. panelp.add(label);
  46. panelp.setEnabled(true);
  47. panelp.setVisible(true);
  48. } catch (IOException ex) {
  49. Logger.getLogger(proimag.class.getName()).log(Leve l.SEVERE, null, ex);
  50. }
  51.  
  52.  
  53.  
  54.  
  55. titulo.setText(ficheros[x].getName());
  56.  
  57.  
  58.  
  59. this.esperar(5);
  60.  
  61. System.out.println(ficheros[x].getName());
  62.  
  63.  
  64.  
  65.  
  66. }
  67. System.out.println("Estoy Fuera del Bucle");
  68. }
  69.  
  70.  
  71.  
  72.  
  73.  
  74. } else {
  75. System.out.println("El directorio no existe");
  76. }
  77. }
  78.  
  79. public void esperar(int segundos) {
  80. try {
  81. Thread.sleep(segundos * 1000);
  82. } catch (Exception e) {
  83. // Mensaje en caso de que falle
  84. }
  85. }
  86.  
  87. public Image cargar_imagen(File fichero) throws IOException {
  88. return ImageIO.read(fichero);
  89. }
  90.  
  91. public ImageIcon crear_icono(Image pic) {
  92. return new ImageIcon(pic);
  93. }

Etiquetas: directorio, imagenes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.