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

    Domanda su JFileChooser

    io ho questo filechooser:
    codice:
        private void jMenuItem1KeyPressed(java.awt.event.KeyEvent evt) {                                      
            JFileChooser fc = new JFileChooser();
            FileFilter csvFilter = new FileNameExtensionFilter("File CSV", "csv");
            FileFilter txtFilter = new FileNameExtensionFilter("File TXT", "txt");
            fc.addChoosableFileFilter(csvFilter);
            fc.addChoosableFileFilter(txtFilter);
            int returnVal = fc.showSaveDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File f = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (f.getName().indexOf('.') == -1) {
                    if (selectedFilter == csvFilter) {
                        f = new File(f.getPath() + ".csv");
                    } else if (selectedFilter == txtFilter) {
                        f = new File(f.getPath() + ".txt");
                    }
                }
                try {
                    FileWriter file = new FileWriter(f, true);
                    PrintWriter out = new PrintWriter(file);
                    out.println(jTextArea1.getText() + "\n" + "Tot entrate: " + jTextField9.getText() + "\nTot uscite: " + jTextField10.getText() + "\nTOT: " + jTextField15.getText() + "\nTot operazioni: " + jTextField16.getText());
                    out.close();
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(this, e, "ERRORE", JOptionPane.ERROR_MESSAGE);
                }
            }
    }
    come vedete è inserito in un evento.
    per farlo funzionare ho importato questi package:
    import javax.swing.*;
    import java.io.*;
    import javax.swing.filechooser.FileFilter;
    import javax.swing.filechooser.FileNameExtensionFilter;

    ora, visto che ho vari eventi con questo codice ho pensato di creare un file a se con quel codice da richiamare nei vari eventi.
    ho importato gli stesso package:
    codice:
    package banca;
    
    import javax.swing.*;
    import java.io.*;
    import javax.swing.filechooser.FileFilter;
    import javax.swing.filechooser.FileNameExtensionFilter;
    
    public class AreaFileChooser extends JFrame {
            JFileChooser fc = new JFileChooser();
            FileFilter csvFilter = new FileNameExtensionFilter("File CSV", "csv");
            FileFilter txtFilter = new FileNameExtensionFilter("File TXT", "txt");
            fc.addChoosableFileFilter(csvFilter);
            fc.addChoosableFileFilter(txtFilter);
            int returnVal = fc.showSaveDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File f = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (f.getName().indexOf('.') == -1) {
                    if (selectedFilter == csvFilter) {
                        f = new File(f.getPath() + ".csv");
                    } else if (selectedFilter == txtFilter) {
                        f = new File(f.getPath() + ".txt");
                    }
                }
                try {
                    FileWriter file = new FileWriter(f, true);
                    PrintWriter out = new PrintWriter(file);
                    out.println(TArea.getJarea().getText() + "\n" + "Tot entrate: " + TArea.getfield9().getText() + "\nTot uscite: " + TArea.getfield10().getText() + "\nTOT: " + TArea.getfield15().getText() + "\nTot operazioni: " + TArea.getfield16().getText());
                    out.close();
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(this, e, "ERRORE", JOptionPane.ERROR_MESSAGE);
                }
            }
    }
    mi da però questo errore di compilazione:
    codice:
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:12: <identifier> expected
            fc.addChoosableFileFilter(csvFilter);
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:12: <identifier> expected
            fc.addChoosableFileFilter(csvFilter);
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:13: <identifier> expected
            fc.addChoosableFileFilter(txtFilter);
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:13: <identifier> expected
            fc.addChoosableFileFilter(txtFilter);
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:15: illegal start of type
            if (returnVal == JFileChooser.APPROVE_OPTION) {
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:15: <identifier> expected
            if (returnVal == JFileChooser.APPROVE_OPTION) {
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:15: ';' expected
            if (returnVal == JFileChooser.APPROVE_OPTION) {
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:15: illegal start of type
            if (returnVal == JFileChooser.APPROVE_OPTION) {
    /media/MATTE/Banca/src/banca/AreaFileChooser.java:15: ';' expected
            if (returnVal == JFileChooser.APPROVE_OPTION) {
    9 errors
    /media/MATTE/Banca/nbproject/build-impl.xml:528: The following error occurred while executing this line:
    /media/MATTE/Banca/nbproject/build-impl.xml:261: Compile failed; see the compiler error output for details.
    perchè??

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Domanda su JFileChooser

    Originariamente inviato da fermat
    codice:
    public class AreaFileChooser extends JFrame {
            JFileChooser fc = new JFileChooser();
            FileFilter csvFilter = new FileNameExtensionFilter("File CSV", "csv");
            FileFilter txtFilter = new FileNameExtensionFilter("File TXT", "txt");
            fc.addChoosableFileFilter(csvFilter);
            fc.addChoosableFileFilter(txtFilter);
            int returnVal = fc.showSaveDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File f = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (f.getName().indexOf('.') == -1) {
                    if (selectedFilter == csvFilter) {
                        f = new File(f.getPath() + ".csv");
                    } else if (selectedFilter == txtFilter) {
                        f = new File(f.getPath() + ".txt");
                    }
                }
                try {
                    FileWriter file = new FileWriter(f, true);
                    PrintWriter out = new PrintWriter(file);
                    out.println(TArea.getJarea().getText() + "\n" + "Tot entrate: " + TArea.getfield9().getText() + "\nTot uscite: " + TArea.getfield10().getText() + "\nTOT: " + TArea.getfield15().getText() + "\nTot operazioni: " + TArea.getfield16().getText());
                    out.close();
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(this, e, "ERRORE", JOptionPane.ERROR_MESSAGE);
                }
            }
    }
    perchè??
    Quel codice va messo all'interno di un metodo e non direttamente nella classe.
    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
    nn ci avevo minimamente pensato.
    ho fatto così:
    codice:
    package banca;
    
    import javax.swing.*;
    import java.io.*;
    import javax.swing.filechooser.FileFilter;
    import javax.swing.filechooser.FileNameExtensionFilter;
    
    public class AreaFileChooser extends JFrame {
    
        public static void salva() {
            JFileChooser fc = new JFileChooser();
            FileFilter csvFilter = new FileNameExtensionFilter("File CSV", "csv");
            FileFilter txtFilter = new FileNameExtensionFilter("File TXT", "txt");
            fc.addChoosableFileFilter(csvFilter);
            fc.addChoosableFileFilter(txtFilter);
            int returnVal = fc.showSaveDialog(this);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File f = fc.getSelectedFile();
                FileFilter selectedFilter = fc.getFileFilter();
                if (f.getName().indexOf('.') == -1) {
                    if (selectedFilter == csvFilter) {
                        f = new File(f.getPath() + ".csv");
                    } else if (selectedFilter == txtFilter) {
                        f = new File(f.getPath() + ".txt");
                    }
                }
                try {
                    FileWriter file = new FileWriter(f, true);
                    PrintWriter out = new PrintWriter(file);
                    out.println(TArea.getJarea().getText() + "\n" + "Tot entrate: " + TArea.getfield9().getText() + "\nTot uscite: " + TArea.getfield10().getText() + "\nTOT: " + TArea.getfield15().getText() + "\nTot operazioni: " + TArea.getfield16().getText());
                    out.close();
                } catch (IOException e) {
                    JOptionPane.showMessageDialog(this, e, "ERRORE", JOptionPane.ERROR_MESSAGE);
                }
            }
        }
    }
    ottenendo questi due errori:
    codice:
    /Volumes/MATTE/Banca/src/banca/AreaFileChooser.java:16: non-static variable this cannot be referenced from a static context
            int returnVal = fc.showSaveDialog(this);
    /Volumes/MATTE/Banca/src/banca/AreaFileChooser.java:33: non-static variable this cannot be referenced from a static context
                    JOptionPane.showMessageDialog(this, e, "ERRORE", JOptionPane.ERROR_MESSAGE);
    2 errors
    /Volumes/MATTE/Banca/nbproject/build-impl.xml:528: The following error occurred while executing this line:
    /Volumes/MATTE/Banca/nbproject/build-impl.xml:261: Compile failed; see the compiler error output for details.
    ho fatto un pò di prove ma ogni volta mi esce fuori un altro errore.
    il metodo l'ho messo statico perchè lo devo richiamare in un altro file.

  4. #4
    risolto.
    ho messo fc al posto di this.
    adesso funge tutto!
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.