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:
Este es el código que selecciona la imagen y la previsualiza en el jLabel: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); } } }
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