Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Java / Buscar y cargar imagenes de disco

Buscar y cargar imagenes de disco

Autor jc mouse sábado, febrero 23, 2013

Cuando se almacenan imágenes en una aplicación java y se desea después a modo de registro buscar estas y cargarlas en algún componente (JLabel por ejemplo) , se pueden utilizar bases de datos, MySQL, PostgreSQL, Access, etc. Otra alternativa es almacenar las imágenes en disco en una carpeta (/imagenes/ , /pictures/ , /files/, etc ) donde el nombre del archivo «mifoto.jpg» servirá como su identificador único.

En este post veremos como implementar este sencillo sistema de «busqueda» y su «carga» en un componente swing.

Necesitamos:

– Conocimientos del lenguaje java

– IDE Netbeans 6.9 o superior

– unas cuantas imágenes en formato JPG

Nivel: Intermedio 🙂

Tiempo: 15 minutos

1. Creamos un nuevo proyecto en Netbeans File -> New Project -> java -> Java Aplication. (nombre: xDBSample1)

2. Agregamos un JFrame llamado interfaz.java y una clase xBusqueda.java

3. Agregamos unos cuantos componentes al JFrame de la siguiente manera:

proyecto java

proyecto java

La carpeta con las imágenes podemos colocarlas en cualquier parte de la PC, aunque por lo general, se colocan en un directorio a lado de nuestro programa. Para este ejemplo, utilizaremos un directorio con imágenes en formato JPG en «e:\\imagenes\\», así que debes crearlo y colocar en el unas cuantas imágenes

4. En la clase xBusqueda.java , implementamos un método de búsqueda con un parámetro de entrada (String), el método retornará, si es que existen las imágenes, un DefaultListModel.

import java.io.File;
import java.io.FileFilter;
import javax.swing.DefaultListModel;
/**
 * @web https://www.jc-mouse.net
 * @author Mouse
 */
public class xBusqueda {

     /** Ruta donde se encuentran las imagenes */
    //
    //private String appPath = System.getProperties().getProperty("user.dir");
    //public File directorio = new File( appPath + "\\imagenes\\" ); 
    //
    public File directorio = new File( "e:\\imagenes\\" );    

    /** Si la extensión es .JPG retorna TRUE, caso contrario FALSE */
    private FileFilter filefilter = new FileFilter() {        
        @Override
        public boolean accept(File file) {           
            return file.getName().endsWith(".jpg");
        }
    };

    /**
 * Busca las imagenes que se encuentran en un directorio
 * @param parametro String que corresponde al nombre del archivo a buscar
 * @return DefaultListModel
 */
    public DefaultListModel buscar( String parametro )
    {
        DefaultListModel defaultListModel = new DefaultListModel ();
        // Si es un directorio valido
        if ( directorio.isDirectory() ) {   
            // obtenemos su contenido
            File[] ficheros = directorio.listFiles( filefilter );             
            //y lo llenamos en un DefaultListModel
            for ( File fichero : ficheros ) 
            {
                if( fichero.getName().toUpperCase().indexOf( parametro.toUpperCase() ) >= 0 )
                {                        
                    defaultListModel.addElement( fichero.getName() );
                }                  
            }
        }        
        return defaultListModel;
    }

}//-->fin clase

5. Finalmente debemos implementar esta clase en la interfaz.java, de la siguiente manera:

– Creamos una instancia de la clase xBusqueda

private xBusqueda xb = new xBusqueda();

– En el único botón de la interfaz, añadimos el método de búsqueda

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        this.jList1.setModel( xb.buscar( this.jTextField1.getText() ) );
    }

– Cuando se realice un clic en el JList, la imagen seleccionada, se cargara en el JLabel2, se debe implementar un MouseListener en el constructor de clase para capturar los movimientos del ratón.

public interfaz() {
        initComponents();

        //Iniciamos el JList vacio
        this.jList1.setModel( new DefaultListModel () );
        //eventos del raton sobre el JList
        MouseListener mouseListener = new MouseAdapter() 
        {
            @Override
            public void mouseClicked(MouseEvent e) 
            {
                if (e.getClickCount() == 1 ) //1 clic izquierdo
                {
                    int posicion = jList1.locationToIndex( e.getPoint());                    
                    if( posicion >= 0 )
                    {
                        jLabel2.setText(""); 
                        jLabel2.setIcon(new javax.swing.ImageIcon( xb.directorio.toString() + "\\" + jList1.getModel().getElementAt(posicion)));
                    }                    
                 }
            }
        };
         this.jList1.addMouseListener(mouseListener);

    }

Eso es todo, si ejecutamos el programa, debemos tener algo como esto:

final

 Proyecto completo AQUI 🙂

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Guardar reporte PDF directamente con Jasperreports

Guardar reporte PDF directamente con Jasperreports

Guardar un reporte PDF creado en iReport no es tan diferente de solo visualizarlo en pantalla. En este ejemplo se hace u...

Introducción a Spark Framework

Introducción a Spark Framework

Spark Framework es un conjunto de librerías para los lenguajes Java y Kotlin que nos sirve para el desarrollo rápido y s...

Procesamiento por lotes [Batch insert]

Procesamiento por lotes [Batch insert]

En ocasiones debemos insertar varios registros a nuestra base de datos desde nuestra aplicación java y lo que usualmente...

Curso gratuito de programación Python de Microsoft

Curso gratuito de programación Python de Microsoft

Microsoft el gigante de la tecnología está tratando de hacer que Python sea más fácil de comprender para aquellos intere...

Código CSS en Java/Netbeans

Código CSS en Java/Netbeans

Los objetos como JLabel o JButton nos permiten hacer uso de código CSS en su propiedad TEXT, asi podemos adornar el text...

Ejecutar función de postgreSQL desde Java

Ejecutar función de postgreSQL desde Java

Este es una continuación de un tutorial pasado [Funciones en PostgreSQL y pgAdmin], así que si quieres entenderlo mucho...

8 comentarios en “Buscar y cargar imagenes de disco”

  1. hugo severiche dice:

    el link no sirve parce, muy bueno el aporte

    1. Mouse dice:

      🙂 perdón, el server tenia problemas pero ya esta activo :=D

  2. VIANEY VARGAS dice:

    amigo mouse como hago para hacer la conexion para 3 bases de datos distintas en una clase JAVA yo solo sé hacer la conexion para una basee de datos como usted me ha enseñado en tus proyectos pero necesito la verdad como se hacer para 3 bases de datos?? PORFAVOR

  3. jhoncho dice:

    mi consulta es la siguiente quiero habrir word desde netbeans lo que quiero hacer es esto colocar en una caja de texto «abrir word » y que se ejecute word me puedes indicar como lo puedo hacer y gracias por tu ayuda de antemano

  4. jhoncho dice:

    y perdona por los horrores ortográficos

  5. julio dice:

    disculpa pueda hacer eso para cargar y visualizarlo en otro labll pero de diferente clase

    1. Mouse dice:

      o.O si

  6. selvin dice:

    buena honda por compartir este ejemplo cuidence sigan con mas

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Existe una gran cantidad de contenido sobre productividad, trucos, consejos y trabajo y más. Pero, ¿Qué pasa con esos mo...

En este post te enseño a usar una herramienta de Inteligencia Artificial para animar tus fotografias y esto completament...

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

Herramientas

Generador de Enlaces a Whatsapp