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

Generador de código para Netbeans

Generador de código para Netbeans

El IDE Netbeans al igual que Eclipse :), nos permite personalizar el espacio de trabajo y añadir funcionalidades que nos...

Esteganografía y encriptación de imágenes en Linux

Esteganografía y encriptación de imágenes en Linux

En un post anterior conocimos una herramienta Open Source con un conjunto de herramientas para el trabajo con imágenes e...

native2ascii: Convertir caracteres Non-Unicode a Unicode

native2ascii: Convertir caracteres Non-Unicode a Unicode

El JDK (Java Development Kit) tra una herramienta llamada native2ascii la cual permite convertir un fichero de una codif...

Obteniendo coordenadas XY con Touch Event

Obteniendo coordenadas XY con Touch Event

Los smartphone al no tener los típicos botones de los celulares, su pantalla es sensible al movimiento, esto se llama...

Client REST usando GSON y Volley

Client REST usando GSON y Volley

En este post crearemos un cliente android para consumir un recurso de un REST API utilizando las librerías GSON y Volley...

Tabla para inventarios de Entradas y Salidas

Tabla para inventarios de Entradas y Salidas

A veces navegando en la internet buscando novedades , investigando o simplemente perdiendo el tiempo 🙂 se encuentran cos...

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

En un post anterior conocimos una herramienta Open Source con un conjunto de herramientas para el trabajo con imágenes e...

ImageMagick es un software de código abierto multiplataforma que contiene una serie de herramientas para leer, mostrar,...

OCR (Optical Character Recognition) en español, Reconociminto Optico de Caracteres, es el proceso por el cual  se extrae...

La misión espacial de la NASA, el Mars  2020 Rover Mission esta proyectada para lanzarse en julio de 2020 y su llegada s...

Android Bolivia

MAUS