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

    [Java] Nascondere JFileChooser

    questo è il JFC richiamato da un JFrame:
    codice:
    public class FileChooserCapture extends JFrame {
    
        private File file = null;
    
        public void salva() throws AWTException, IOException {
            JFileChooser fc = new JFileChooser();
    
            FileFilter jpegFilter = new FileNameExtensionFilter("File JPG/JPEG", "jpeg");
            FileFilter gifFilter = new FileNameExtensionFilter("File GIF", "gif");
            FileFilter pngFilter = new FileNameExtensionFilter("File PNG", "png");
            fc.addChoosableFileFilter(gifFilter);
            fc.addChoosableFileFilter(pngFilter);
            fc.addChoosableFileFilter(jpegFilter);
    
            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;
                    }
                }
                // nascondere jfc
                Thread.sleep(1000);
                if (Screen.getRadioManual().isSelected()) {
                    int x = Integer.parseInt(Screen.getTxtX().getText());
                    int y = Integer.parseInt(Screen.getTxtY().getText());
                    int w = Integer.parseInt(Screen.getTxtW().getText());
                    int h = Integer.parseInt(Screen.getTxtH().getText());
                    TakeScreen.manualScreen(formato(), file.toString(), x, y, w, h);
                } else {
                    TakeScreen.autoScreen(formato(), file.toString());
                }
            }
        }
    
        public String formato() {
            String ext = file.toString();
            String formato = ext.substring(ext.lastIndexOf(".") + 1);
            return formato;
        }
    }
    in pratica un classico JFC con flitri che imposta percorso e nome di salvataggio di un file.
    dopo di che il programma continua scattando una foto del desktop salvando il file prendendolo dal JFC.
    il problema è che nella finestra rientra anche il JFC e nn dovrebbe.
    per ovviare per ora ho impostato uno sleep, ma c'è un modo migliore per nascondoere il JFC dopo aver scelto dove salvare il file??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Chiama setVisible(false) sull'istanza del tuo JFileChooser.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    Chiama setVisible(false) sull'istanza del tuo JFileChooser.
    era una c*****a unica e come al solito ho pensato alla cosa più difficile.
    grazie!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.