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

Minimizar aplicación al SystemTray/Bandeja del Sistema

Minimizar aplicación al SystemTray/Bandeja del Sistema

El SystemTray/Bandeja del Sistema o como también se le llama “Área de Notificación” es la sección de la barr...

DOM4J: Creación de archivos XML

DOM4J: Creación de archivos XML

DOM4J es una de las librerías para java más populares para el trabajo con XML ya que nos permite crea, editar y leer doc...

Reproducir video en java en un momento determinado

Reproducir video en java en un momento determinado

Para quienes hayan trabajado con JMF saben que es una librería de Java desarrollada por Sun Microsystems para facilitar...

Botones circulares de Google Plus en java

Botones circulares de Google Plus en java

Continuación del tutorial “Google Circles en java” o.O 🙂 La Interfaz El proyecto consta de una sola interfaz...

Ecuación de segundo grado

Ecuación de segundo grado

Problema: Implemente el código necesario en Kotlin para resolver una ecuación de segundo grado de números reales: Soluci...

Código Único de Factura en C Sharp

Código Único de Factura en C Sharp

En este post implementamos el “Código Único de Factura” según la documentación otorgada por Impuestos Bolivi...

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

KolibriOS  es un pequeño sistema operativo poderoso, rápido y libre con un núcleo monolítico anticipativo en tiempo real...

Los cursos online se han convertido en algo común en nuestros días y las aplicaciones que hay en la nube para realizar r...

Dia Diagram Editor es un software gratuito de dibujo de código abierto para los sistemas operativos de Windows, Mac OS X...

En ocasiones el limite máximo de importación de base de datos que ofrece PhpMyAdmin (2MB) no es suficiente para lo que q...

Android Bolivia

MAUS