Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/10/2014, 12:01
Avatar de kede6
kede6
 
Fecha de Ingreso: julio-2013
Ubicación: Canet d'en Berenguer
Mensajes: 18
Antigüedad: 11 años, 5 meses
Puntos: 0
Guardar imagen en carpeta de proyecto JAVA

Hola buena tardes,
estoy haciendo un programa en java con Netbenas para clase. Necesito elegir una imagen apretando un boton y previsualizándola en un jLabel, cosa que ya he hecho, pero quiero que al pulsar otro botón de guardar cambios dicha imagen me la guarde en una carpeta del proyecto llamada Imágenes. El evento del botón guardar os lo dejo aquí a ver si alguien pudiera ayudarme por favor.
Código:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
//Valido si algún campo vacío y muestro mensaje de error       if(c1.getText().equals("")||c2.getText().equals("")||c3.getSelectedIndex()==-1||c4.getText().equals("")||jLabel9.getIcon()==null){
            JOptionPane.showMessageDialog(this,"Alguno de los campos está vacío. Introduzca de nuevo.");
        }else{
           //si no, abro conexión, creo sentencia y ejecuto la consulta
            try {            
                con=new ConectaBBDD();
                con.conecta();
                con.crearSentencia();
                consulta="SELECT * FROM Libros";
                con.ejecutaSQL(consulta);
                while(con.rs.next()){
                    //mientras que se muestren resultados compruebo que  no existan en la tabla
                    if(c1.getText().equals(con.rs.getString(1))){
                        JOptionPane.showMessageDialog(this, "El registro ya esxiste en la tabla Libros.");
                    }else{
                        //si no existen capturo el contenido en variables y creo un nuevo objeto Libro que añado a la base de datos
                        String isbn,titulo,materia,descripcion,portada;
                        isbn=c1.getText();
                        titulo=c2.getText();
                        materia= codMateria.get(c3.getSelectedIndex());
                        descripcion=c4.getText();
                        portada=archivo;
                        Libro libro=new Libro(isbn,titulo,materia,descripcion,portada);
                        con.guardarLibro(libro);
//AQUÍ DEBERÍA COGER LA IMAGEN Y GUARDARLA EN LA CARPETA IMAGENES
                        if(con.guardarLibro(libro)==-1){
                            //si el método devuelve un valor  -1 no se guarda y muestra error
                            JOptionPane.showMessageDialog(this, "Error al introducir libro.");
                        }else{
                            //si no, se guarda y muestra mensaje
                            JOptionPane.showMessageDialog(this, "Libro introducido correctamente.");
                        }
                    }
                }
                //cierro conexión
                con.cerrarConexion();
            } catch (SQLException ex) {
                Logger.getLogger(Nuevo_registro.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
Este es el código que selecciona la imagen y la previsualiza en el jLabel:
Código:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        JFileChooser fc=new JFileChooser();
        fc.setFileFilter(filter);
        int opcion=fc.showOpenDialog(this);
        if(opcion==JFileChooser.APPROVE_OPTION){
            String file=fc.getSelectedFile().getPath();
            String f=fc.getSelectedFile().toString();
            archivo=fc.getSelectedFile().getName();
            jLabel9.setIcon(new ImageIcon(file));
            ImageIcon icon=new ImageIcon(file);
            Image img=icon.getImage();
            Image newimg = img.getScaledInstance(jLabel9.getWidth(),jLabel9.getHeight(),java.awt.Image.SCALE_SMOOTH);
            ImageIcon newIcon= new ImageIcon(newimg);
            jLabel9.setIcon(newIcon);
            jLabel9.setSize(jLabel9.getWidth(), jLabel9.getHeight());
        }
    }

Gracias por anticipado. Un saludo