Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] Aiuto su percorso di salvataggio file

    devo salvare una immagine e per ora ho messo la stringa del percorso a mano.
    codice:
    String percorso = "/media/MATTE/screen." + formato();
            try {
                if (radioAuto.isSelected()) {
                    ScreenAuto.autoScreen(formato(), percorso);
    ..........
        public String formato() {
            String immagine = null;
            if (radioGIF.isSelected()) {
                immagine = "gif";
            } else if (radioPNG.isSelected()) {
                immagine = "png";
            } else {
                immagine = "jpeg";
            }
            return immagine;
        }
    Screen.autoscreen è il metodo per salvare l'immagine al quale devo passare due parametri.
    però vorrei che al click del mouse prima venga lanciato un filechooser per scegliere dove salvare e in quale formato, e poi venga lanciato quel metodo passandogli i parametri.
    come fc avrei questo:
    codice:
    public class Salva extends JFrame {
    
        public static void salva() {
            JFileChooser fc = new JFileChooser();
            FileFilter jpgFilter = new FileNameExtensionFilter("File JPG/JPEG", "jpg");
            FileFilter pngFilter = new FileNameExtensionFilter("File PNG", "png");
            FileFilter gifFilter = new FileNameExtensionFilter("File GIF", "gif");
            fc.addChoosableFileFilter(jpgFilter);
            fc.addChoosableFileFilter(pngFilter);
            fc.addChoosableFileFilter(gifFilter);
            int returnVal = fc.showSaveDialog(fc);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File f = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (f.getName().indexOf('.') == -1) {
                    if (selectedFilter == jpgFilter) {
                        f = new File(f.getPath() + ".jpg");
                    } else if (selectedFilter == pngFilter) {
                        f = new File(f.getPath() + ".png");
                    } else if (selectedFilter == gifFilter) {
                        f = new File(f.getPath() + ".gif");
                    }
                }
                if (f.exists()) {
                    String msg = MessageFormat.format("The entry ''{0}'' already exists.\nDo you want to replace it?", new Object[]{f});
                    int r = JOptionPane.showConfirmDialog(null, msg, "Confirm", JOptionPane.YES_NO_OPTION);
                    if (r == JOptionPane.NO_OPTION) {
                        return;
                    }
                }
            }
        }
    }
    ma come faccio a passrgli i parametri??
    gli devo passare:
    -il formato immagine
    -il percorso
    è possibile??

  2. #2
    pensavo che bastasse fare una cosa del genere:
    codice:
    public class FCCaptureAuto extends JFrame {
    
        public static void salva() throws AWTException, IOException {
            JFileChooser fc = new JFileChooser();
            File file = null;
    
            FileFilter jpegFilter = new FileNameExtensionFilter("File JPG/JPEG", "jpeg");
            FileFilter gifFilter = new FileNameExtensionFilter("File GIF", "gif");
            FileFilter pngFilter = new FileNameExtensionFilter("File PNG", "png");
    
            fc.addChoosableFileFilter(jpegFilter);
            fc.addChoosableFileFilter(gifFilter);
            fc.addChoosableFileFilter(pngFilter);
    
            int returnVal = fc.showSaveDialog(fc);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                file = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (file.getName().indexOf('.') == -1) {
                    if (selectedFilter == jpegFilter) {
                        file = new File(file.getPath() + ".jpeg");
                    } else if (selectedFilter == gifFilter) {
                        file = new File(file.getPath() + ".gif");
                    } else if (selectedFilter == pngFilter) {
                        file = new File(file.getPath() + ".png");
                    }
                }
                if (file.exists()) {
                    String msg = MessageFormat.format("The entry ''{0}'' already exists.\nDo you want to replace it?", new Object[]{file});
                    int r = JOptionPane.showConfirmDialog(null, msg, "Confirm", JOptionPane.YES_NO_OPTION);
                    if (r == JOptionPane.NO_OPTION) {
                        return;
                    }
                }
                Robot robot = new Robot();
                Rectangle area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
                BufferedImage buff = robot.createScreenCapture(area);
                ImageIO.write(buff, recupero formato, new File(file.toString()));
                JOptionPane.showMessageDialog(null, "Immagine salvata" + file);
            }
        }
    
        public static void main(String[] args) {
            try {
                salva();
            } catch (AWTException ex) {
                Logger.getLogger(FCCaptureAuto.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(FCCaptureAuto.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    ma come recupero il formato/estensione scelta??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.