Foros del Web » Programación para mayores de 30 ;) » Java »

JFileChooser

Estas en el tema de JFileChooser en el foro de Java en Foros del Web. Hola a todos! Estoy intentando guardar una imagen de la siguiente forma: private JButton getGuardar() { if (guardar == null) { guardar = new JButton(); ...
  #1 (permalink)  
Antiguo 23/06/2008, 13:18
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
JFileChooser

Hola a todos!
Estoy intentando guardar una imagen de la siguiente forma:

private JButton getGuardar() {
if (guardar == null) {
guardar = new JButton();
guardar.setText("Guardar");
guardar.setBounds(new Rectangle(380,400,131,53));
guardar.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0) throws IOException {
fileChooser=new JFileChooser();
JFileChooser fileChooser = new JFileChooser();
Component temporaryLostComponent = null;
int seleccion = fileChooser.showSaveDialog(temporaryLostComponent) ;
if (seleccion == JFileChooser.APPROVE_OPTION)
{
File fichero = fileChooser.getSelectedFile();



}



}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
});
}
return guardar;
}


La imagen que quiero guardar está visualizada en un Jlabel y entonces tendré que copiarla a la ruta que se ha especificado. Después tengo que hacer la copia ¿cómo puedo hacerla? ¿Alguien puede ayudarme?
  #2 (permalink)  
Antiguo 26/06/2008, 14:05
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: JFileChooser

hola mira para copiar archivos es asi(lo tome de la FAQ el ejemplo) y para obtener la ruta seleccionada lo haces asi
chooser.getSelectedFile().getPath() o chooser.getSelectedFile().getAbsolutePath()

no recuerdo bien cual de los dos te devuelve la ruta completa

saludos

Código:
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 

/** 
 * @author: Crysfel Villa 
 * Created: Friday, June 03, 2005 4:54:59 PM 
 * Modified: Friday, June 03, 2005 4:54:59 PM 
 */ 


public class Copiar{ 
     
    /** 
     * Copia un directorio con todo y su contendido 
     * @param srcDir 
     * @param dstDir 
     * @throws IOException 
     */ 
    public void copyDirectory(File srcDir, File dstDir) throws IOException { 
        if (srcDir.isDirectory()) { 
            if (!dstDir.exists()) { 
                dstDir.mkdir(); 
            } 
             
            String[] children = srcDir.list(); 
            for (int i=0; i<children.length; i++) { 
                copyDirectory(new File(srcDir, children[i]), 
                    new File(dstDir, children[i])); 
            } 
        } else { 
            copy(srcDir, dstDir); 
        } 
    } 
     
    /** 
     * Copia un solo archivo 
     * @param src 
     * @param dst 
     * @throws IOException 
     */ 
    public void copy(File src, File dst) throws IOException { 
        InputStream in = new FileInputStream(src); 
        OutputStream out = new FileOutputStream(dst); 
         
         
        byte[] buf = new byte[1024]; 
        int len; 
        while ((len = in.read(buf)) > 0) { 
            out.write(buf, 0, len); 
        } 
        in.close(); 
        out.close(); 
    } 
     
    public static void main(String arg[]){ 
        Copiar cp = new Copiar(); 
        try{ 
            cp.copy(new File("log.mdb"),new File("directorio/log.mdb")); 
            cp.copy(new File("hoja.jpg"),new File("directorio/hoja copy.jpg")); 
            System.out.print("Copiado con exito"); 
        }catch(Exception e){ 
            System.out.println(e); 
        } 
    } 
}
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #3 (permalink)  
Antiguo 14/07/2008, 01:50
 
Fecha de Ingreso: junio-2008
Mensajes: 10
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta Respuesta: JFileChooser

Cita:
Iniciado por djagu_26 Ver Mensaje
hola mira para copiar archivos es asi(lo tome de la FAQ el ejemplo) y para obtener la ruta seleccionada lo haces asi
chooser.getSelectedFile().getPath() o chooser.getSelectedFile().getAbsolutePath()

no recuerdo bien cual de los dos te devuelve la ruta completa
Es chooser.getSelectedFile().getPath(), pero ahora ami me surge otra duda quiero ponerle la ruta del archivo-en este caso el de una imagen- a la ruta de un label, pero este no cambia ya que la ruta debe estar metida dentro de un par de comillas "", como le hago para que cambie la imagen...

Ya trate de ponerle a dos variables string una comillay luego imprimirla pero esto no da, aqui el codigo

Código:
JFileChooser Seleccionar = new JFileChooser();
				Seleccionar.addChoosableFileFilter(new ImageFilter());
				Seleccionar.setFileView(new ImageFileView());
				Seleccionar.setAccessory(new ImagePreview(Seleccionar));
				int returnVal = Seleccionar.showDialog(Options.this,"Abrir Avatar...");
				if (returnVal == JFileChooser.APPROVE_OPTION) 
				{
					String Ruta = Seleccionar.getSelectedFile().getPath();
					String Ruta0="\"";
					String Ruta1="\"";
					
					Imag.setIcon(new ImageIcon(getClass().getResource(Ruta0+Ruta+Ruta1)));
				}
pero este no me funciono...

De antemano gracias por la ayuda
  #4 (permalink)  
Antiguo 14/07/2008, 11:01
Avatar de djagu_26  
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 518
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: JFileChooser

Mira aqui te dejo un codigo que yo utilizo para cargar una imagen en un label, lo que hace es siempre transformar la imagen en 128x128 pixeles, lo unico q le tendrias q agregar tu seria lblRuta.setText(chooser.getSelectedFile().getPath( )););

Código:
JFileChooser chooser = new JFileChooser();
    chooser.setMultiSelectionEnabled(false);
    chooser.showOpenDialog(null);
    if (chooser.getSelectedFile() != null) {
        ImageIcon image = new ImageIcon(chooser.getSelectedFile().getPath());
        lblImagen.setText("");
        if(image.getIconHeight()>128 || image.getIconWidth()>128){
            ImageIcon imageScalada = new ImageIcon(image.getImage().getScaledInstance(128, 128, 128));
            lblImagen.setIcon(imageScalada); 
        }else{
           lblImagen.setIcon(image); 
        }
    }
saludos
__________________
"La magia no existe, la programacion si"

A/P Agustin Sivoplas
[email protected]
  #5 (permalink)  
Antiguo 22/11/2008, 10:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 20
Antigüedad: 16 años
Puntos: 0
Respuesta: JFileChooser

Hola a todos!!
a mi me pasa más o menos lo que a Javig33 y creo que a lo de Odrargg, lo que pasa es que no entiendo muy bien.
Yo he abierto una imagen en un JLabel. Posteriormente, le he realizado una serie de cambios, por esta razón necesito guardar esa imagen. Utilizo el JFileChooser en un botón que me he hecho para guardar la imagen que está en el JLabel, de esta forma:

private JButton getGuardar() {
if (guardar == null) {
guardar = new JButton();
guardar.setText("Guardar");
guardar.setBounds(new Rectangle (100,400,131,53));
guardar.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent arg0) {

JFileChooser fileChooser = new JFileChooser();
Component temporaryLostComponent = null;
int seleccion = fileChooser.showSaveDialog(temporaryLostComponent) ;
if (seleccion == JFileChooser.APPROVE_OPTION)
{
File fichero = fileChooser.getSelectedFile().getAbsoluteFile();
file4=fichero;

}
}
public void mousePressed(MouseEvent arg0) {
}
public void mouseReleased(MouseEvent arg0) {
}
public void mouseEntered(MouseEvent arg0) {
}
public void mouseExited(MouseEvent arg0) {
}
});
}
return guardar;
}


En file4 tengo la ruta dónde quiero guardar la imagen, pero mi problema es cómo meter mi imagen en esa ruta para poder guardarla, no sé si me he explicado bien. Gracias de antemano a todos. Clara.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:38.