04/11/2010, 15:14
|
| | Fecha de Ingreso: diciembre-2009
Mensajes: 137
Antigüedad: 14 años, 10 meses Puntos: 4 | |
Respuesta: Cargar imagenes en java + mysql con netbeans Hola maframaran
mira realize este codigo y funciona
Modulo de conectar a la base de datos
Código:
package jfilechooser;
import java.sql.*;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class conectate {
static String bd = "dbprestamo";
static String login = "root";
static String password = "root";
static String url = "jdbc:mysql://localhost/"+bd;
Connection conn = null;
/** Constructor de DbConnection */
public conectate() {
try{
//obtenemos el driver de para mysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemos la conexión
conn = DriverManager.getConnection(url,login,password);
if (conn!=null){
System.out.println("Conección a base de datos "+bd+". listo");
}
}catch(SQLException e){
System.out.println(e);
}catch(ClassNotFoundException e){
System.out.println(e);
}
}
/**Permite retornar la conexión*/
public Connection getConnection(){
return conn;
}
public void desconectar(){
conn = null;
System.out.println("La conexion a la base de datos "+bd+" a terminado");
}
}
Código:
public class Imagen extends javax.swing.JFrame {
private BufferedImage _image = null;
private FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivo de Imagen","jpg","png");
private JFileChooser fileChooser = new JFileChooser();
//fileChooser.setFileFilter(filter);
conectate con;
/** Creates new form Imagen */
public Imagen() {
initComponents();
con = new conectate();
// JFileChooser fileChooser = new JFileChooser();
// fileChooser.setFileFilter(filter);
}
/* dada una direccion fisica de un archivo de imagen,
* coloca esta en el objeto BufferedImage, o sea en memoria */
public void cargar_imagen_en_buffer(URL _url){
//se llena el buffer con la imagen
try {
_image = ImageIO.read(_url);
} catch (IOException ex) {
Logger.getLogger(Imagen.class.getName()).log(Level.SEVERE, null, ex);
}
}
/* Metod que muestra una ventana de dialgo para añadir "archivo de imagen"
* en memoria */
public void Abrir_Dialogo(JPanel p){
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(filter);
int result = fileChooser.showOpenDialog(null);
if ( result == JFileChooser.APPROVE_OPTION ){
try {
//se asigna a "url" el archivo de imagen seleccionado
URL url = fileChooser.getSelectedFile().toURL();
//se lo coloca en memoria
cargar_imagen_en_buffer(url);
//se añade al contenedor
p.add(new mipanel(Obtener_imagen_de_Buffer(), p.getSize()));
p.setVisible(true);
p.repaint();
}
catch (IOException ex) {
Logger.getLogger(Imagen.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void guardarfoto(String nombre, String foto) {
{
FileInputStream fis = null;
try {
File file = new File(foto);
fis = new FileInputStream(file);
PreparedStatement pstm = con.getConnection().prepareStatement("insert into " +
" fotos(nombre, foto) " + " values(?,?)");
pstm.setString(1, nombre);
pstm.setBinaryStream(2, fis,(int) file.length());
pstm.execute();
pstm.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Imagen.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException e) {
System.out.println(e);
} finally {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(Imagen.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
public void Guardar_Dialogo(){
//JFileChooser fileChooser = new JFileChooser();
//fileChooser.setFileFilter(filter);
int result = fileChooser.showSaveDialog(null);
///int result = fileChooser.showSaveDialog(null);
if ( result == JFileChooser.APPROVE_OPTION ){
try{
//se obtiene la direccion donde se guardara la imagen
String url = fileChooser.getSelectedFile().toString();
//String namefile = fileChooser.getSelectedFile().getName();
System.out.println("url: " + url);
//Se guarda la imagen
//guardar_imagen(url);
guardarfoto("",url);
}catch(Exception e)
{
e.printStackTrace();
}
}
}
/* retorna el objeto almacenado en memoria */
public BufferedImage Obtener_imagen_de_Buffer(){
return _image;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Abrir_Dialogo(jPanel1);
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Guardar_Dialogo();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Imagen().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JTextField TxtOpen;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JPanel jPanel1;
// End of variables declaration
}
el problema que presenta es el siguiente tengo 2 botones y panel, un boton se llama abrir que se encarga de abrir la carpeta donde para buscar la imagen a insertar y coloca la imagen en el panel, el segundo boton es el de guardar la imagen en la base de datos el problema esta que al oprimir el boton abre la carpeta para localizar nuevamente la imagen. lo que necesito es que me omita esa opcion que guarde la imagen cuando precione le boton |