elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda, mostrar imagen almacenada en mysql y mostrarla en un jlabel
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, mostrar imagen almacenada en mysql y mostrarla en un jlabel  (Leído 5,877 veces)
junca15

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda, mostrar imagen almacenada en mysql y mostrarla en un jlabel
« en: 1 Octubre 2015, 17:36 pm »

Hola amigos, recien estoy empezando en java y me propuse a realizar una base de datos java y myql, pero resulta que me quede en un punto que no se como sulucionar he buscado en foros y videos pero no encuentro la solucion o el error.

es una pequeña aplicacion que registra un producto, y cada vez que registro un producto lo guarda en la base de datos y me muestra en un jtable los datos almacenados en dicha base de datos, en el jtable puedo seleacionar la fila y con clic derecho mostrar en los jtextfiel pero no logro mostrar la foto en un jlabel. acudo a sus ayudas y colaboracion, gracias. anexo proyecto - base de datos.

por favor si se tienen mejoras con mucho gusto son recibidas, estoy con las ganas de aprender.

import clases.conectar;

import javax.swing.filechooser.FileNameExtensionFilter;

import java.io.File;

import java.awt.*;

import java.io.ByteArrayOutputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.sql.*;

import java.text.SimpleDateFormat;

import java.util.*;

import java.util.logging.Level;

import java.util.logging.Logger;

import static javax.print.attribute.Size2DSyntax.MM;

import javax.swing.table.DefaultTableModel;

import java.util.Date;

import java.text.ParseException;

import javax.swing.*;

import javax.swing.filechooser.FileFilter;

 

 

 

/**

 *

 * @author icore

 */

public class form_internal_productos extends javax.swing.JInternalFrame {

 

    /**

     * Creates new form form_internal_productos

     */

    public form_internal_productos() {

        initComponents();

        mostrardatos("");

 

        //ESTE CODIGO ES PARA EL JCOMBOBOX PARA VER LO QUE ESTA EN LA TABLA PROVEDOR       

        try {

        conectar con = new conectar();

        Connection reg = con.conexion();

        t_nombreprovedor.removeAllItems();

        String sql="";

        sql="SELECT * FROM provedor";

            Statement st = reg.createStatement();

            ResultSet rs = st.executeQuery(sql);

 

            while(rs.next()){

               t_nombreprovedor.addItem(rs.getString("nombreprovedor"));

 

            }

        } catch (SQLException ex) {

            Logger.getLogger(form_internal_productos.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

 

    File fichero;

 

     void mostrardatos (String valor) {

    DefaultTableModel modelo = new DefaultTableModel();

  modelo.addColumn("Serial");

  modelo.addColumn("Placa");

  modelo.addColumn("Tipo");

  modelo.addColumn("Marca");

  modelo.addColumn("Descripcion");

  modelo.addColumn("Cantidad");

  modelo.addColumn("Fecha Compra");

  modelo.addColumn("Agencia");

  modelo.addColumn("Imagen");

    tb_producto.setModel(modelo);

    //aqui es el codigo para la consulta del boton buscar

   String sql="";

    if(valor.equals("")) {

        sql="SELECT * FROM producto";

    }

    else {

        sql="SELECT * FROM producto WHERE serialproducto='"+valor+"'";

    }

    String []datos = new String [9];

        try {

            Statement st = reg.createStatement();

            ResultSet rs = st.executeQuery(sql);

            while(rs.next()){

 

                datos[0]=rs.getString("serialproducto");

                datos[1]=rs.getString("placaproducto");

                datos[2]=rs.getString("tipoproducto");

                datos[3]=rs.getString("marcaproducto");

                datos[4]=rs.getString("descripcionproducto");

                datos[5]=rs.getString("cantidadproducto");

                datos[6]=rs.getString("fechaproducto");

                datos[7]=rs.getString("nombreprovedor");

                ByteArrayOutputStream ouput = new ByteArrayOutputStream();

                InputStream isdatos = rs.getBinaryStream("fotoproducto");

                 int temp=isdatos.read();

        while(temp>=0)

        {

           ouput.write((char)temp);

           temp=isdatos.read();

 

        }

        Image imagen=Toolkit.getDefaultToolkit().createImage(ouput.toByteArray());

        imagen=imagen.getScaledInstance(110, 120, 1);

        lblfoto.setIcon(new ImageIcon(imagen));

               // datos[8]=rs.getString("fotoproducto");

                //String cod = t_imagenproducto.getText();

 

            //agregar la fila

      modelo.addRow(datos);

 

            }

        } catch (SQLException ex) {

            Logger.getLogger(form_internal_provedor.class.getName()).log(Level.SEVERE, null, ex);

        } catch (IOException ex) {

            Logger.getLogger(form_internal_productos.class.getName()).log(Level.SEVERE, null, ex);

        }

 

            }

 

    private void btnselecionarActionPerformed(java.awt.event.ActionEvent evt) {

 

        JFileChooser archivo = new JFileChooser();

 

        archivo.setAcceptAllFileFilterUsed(false);

        FileFilter Filtro1 = new FileNameExtensionFilter("JPG file","jpg");

        FileFilter Filtro2 = new FileNameExtensionFilter("PNG file","png");

        archivo.setFileFilter(Filtro1);

        archivo.addChoosableFileFilter(Filtro2);

        archivo.setDialogTitle("Abrir Archivo");

        File ruta = new File("D:/productos");

        archivo.setCurrentDirectory(ruta);

 

        int ventana = archivo.showOpenDialog(null);

 

        if(ventana == JFileChooser.APPROVE_OPTION)

            {

 

                File file = archivo.getSelectedFile();

                t_imagenproducto.setText(String.valueOf(file));

                Image foto = getToolkit().getImage(t_imagenproducto.getText());

                foto = foto.getScaledInstance(210, 210, Image.SCALE_DEFAULT);

                lblfoto.setIcon(new ImageIcon(foto));

        }

    }

 

    private void t_imagenproductoActionPerformed(java.awt.event.ActionEvent evt) {

        // TODO add your handling code here:

        JTextField txtnomimagen = new JTextField(5);

    }

 

    private void t_nombreprovedorActionPerformed(java.awt.event.ActionEvent evt) {

        // TODO add your handling code here:

    }

 

    private void b_registrarActionPerformed(java.awt.event.ActionEvent evt) {

 

        String sql;

       // fotoproducto=t_imagenproducto.getText();

 

        sql="INSERT INTO producto (serialproducto,placaproducto,tipoproducto,marcaproducto,descripcionproducto,cantidadproducto,fechaproducto,nombreprovedor,fotoproducto) VALUES (?,?,?,?,?,?,?,?,?)";

        try {

        FileInputStream imagenproducto;

        PreparedStatement pst=reg.prepareStatement(sql);

            pst.setString(1,t_serialproducto.getText());

            pst.setString(2,t_placaproducto.getText());

            pst.setString(3,t_tipoproducto.getText());

            pst.setString(4,t_marcaproducto.getText());

            pst.setString(5,t_descripcionproducto.getText());

            pst.setString(6,t_cantidadproducto.getText());

            pst.setString(7,((JTextField)t_fechaproducto.getDateEditor().getUiComponent()).getText());

            pst.setString(8,t_nombreprovedor.getSelectedItem().toString());

            pst.setString(9, t_imagenproducto.getText());

            imagenproducto = new FileInputStream(t_imagenproducto.getText());

            pst.setBinaryStream(9,imagenproducto);

 

 

 

            int n=pst.executeUpdate();

           if (n>0){

           JOptionPane.showMessageDialog(null,"Registrado con exito");

           //mostrardatos("");

           }

       //  t_imagenproducto.setText(null);

       //  lblfoto.setIcon(null);

 

 

        }

          catch (SQLException ex) {

            Logger.getLogger(form_internal_productos.class.getName()).log(Level.SEVERE, null, ex);

         } catch (FileNotFoundException ex) {

            Logger.getLogger(form_internal_productos.class.getName()).log(Level.SEVERE, null, ex);

        }

 

 

    }

 

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {

        // TODO add your handling code here:

         int fila = tb_producto.getSelectedRow();

        if (fila>=0) {

            t_serialproducto.setText(tb_producto.getValueAt(fila, 0).toString());

            t_placaproducto.setText(tb_producto.getValueAt(fila, 1).toString());

            t_tipoproducto.setText(tb_producto.getValueAt(fila, 2).toString());

            t_marcaproducto.setText(tb_producto.getValueAt(fila, 3).toString());

            t_descripcionproducto.setText(tb_producto.getValueAt(fila, 4).toString());

            t_cantidadproducto.setText(tb_producto.getValueAt(fila, 5).toString());

            // AQUI PARA MOSTRAR EL DATO DE FECHA DE LA TABLA JAVA EN UN JDATECHOOSER

            SimpleDateFormat formatodeltexto = new SimpleDateFormat("yyyy-MM-dd");

            String fecha = tb_producto.getValueAt(fila, 6).toString().trim();

            Date dato = null;

            try {

                dato = formatodeltexto.parse(fecha);

            }

            catch (ParseException e) {

            e.printStackTrace();

            }

            t_fechaproducto.setDate(dato);

            /////////////////////////HASTA AQUI//////////////////////////

           // t_imagenproducto.setText(tb_producto.getValueAt(fila, 7).toString());

            String img=tb_producto.getValueAt(fila, 8).toString();

            t_imagenproducto.setText(img);

            Image foto = getToolkit().getImage(img);

            foto= foto.getScaledInstance(210, 210, 1);

            lblfoto.setIcon(new ImageIcon(foto));

 

 

        }

        else {

            JOptionPane.showMessageDialog(null,"Selecione una fila para Editar");

        }

    }

 

conectar con = new conectar();

 Connection reg = con.conexion();

}


En línea

MGGM

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda, mostrar imagen almacenada en mysql y mostrarla en un jlabel
« Respuesta #1 en: 1 Octubre 2015, 19:44 pm »

Primero recuperas la imagen:

Código
  1. // cambiar 'imagen' por el nombre de tu columna o por el índice
  2. InputStream imgstream = rs.getBinaryStream("imagen");

Luego creas la imagen a partir del stream binario de la imagen:

Código
  1. Image image = ImageIO.read(imgstream);

Y se la asignas a un JLabel:

Código
  1. JLabel lblFoto = new JLabel(new ImageIcon(image));


En línea

junca15

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda, mostrar imagen almacenada en mysql y mostrarla en un jlabel
« Respuesta #2 en: 17 Diciembre 2015, 21:03 pm »

Amigo muchas gracias por tu ayuda. me sirvio de mucho.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
POner una imagen en un JLabel
Java
mapers 1 7,457 Último mensaje 23 Mayo 2011, 19:51 pm
por 1mpuls0
Mostrar imagen desde mysql con php
PHP
migue_coco 5 21,586 Último mensaje 21 Junio 2013, 20:12 pm
por migue_coco
Imagen en JLabel - Netbeans
Java
adeur 3 3,458 Último mensaje 30 Septiembre 2013, 07:04 am
por Ethgar
Mostrar texto en un Jlabel
Java
ferluqs 1 5,790 Último mensaje 14 Octubre 2014, 02:06 am
por bengy
Error al mostrar variable en un jlabel
Java
JenselG 1 3,001 Último mensaje 17 Octubre 2017, 16:42 pm
por Angel wing
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines