Scrittura su file con JFileChooser

di il
2 risposte

Scrittura su file con JFileChooser

Ciao a tutti
vorrei scrivere un semplice programma che chiede all'utente di inserire dei valori int in una matrice 3x3 e una volta fatto, chiede all'utente tramite un'interfaccia JFileChooser di scegliere una cartella in cui salvare la matrice in forma testuale.
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import javax.swing.JFileChooser;


public class StampaMat {
    
    private int[][] mat = new int[3][3];
    private FileWriter out;
    
    //costruttore
    public StampaMat(){
        
    }

    //inizializza la matrice

    public boolean MakeMat() throws IOException{
    
        Scanner console = new Scanner(System.in);
        
        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++){
        
                System.out.println("inserisci il valore "+i+","+j);
                
                int inx = console.nextInt();
                this.mat[i][j]=inx;

                    }
            
                }
        console.close();
        System.out.println("\nCreazione completa!\n");
        return true;
            }
    
       //stampa la matrice

       public void PrintMat() throws IOException{
       
           JFileChooser chooser = new JFileChooser();
           PrintWriter out = null;
           
           if(chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){
           
               File select = chooser.getSelectedFile();
               out = new PrintWriter(select);
           
               for(int i=0;i<3;i++){
                   for(int j=0;j<3;j++){
                        out.print("| "+this.mat[i][j]+" |"); 
                                               
                   }
                                  
               }
               
           }
           
           out.close();
       } 
        
    }
poi ho creato un Main che avvia i metodi MakeMat e PrintMat però dopo che creo la matrice, non viene lanciato il JFileChooser..... help!

2 Risposte

  • Re: Scrittura su file con JFileChooser

    rugrag ha scritto:


    poi ho creato un Main che avvia i metodi MakeMat e PrintMat però dopo che creo la matrice, non viene lanciato il JFileChooser..... help!
    Bisognerebbe vedere il main allora .... perché di per sé, dal codice che vedo, PrintMat dovrebbe funzionare.

    Una cosa che non hai considerato (non è quello il problema principale però) è che out è inizialmente a null, se l'utente non approva, invochi close() su un null. Tienilo presente.
  • Re: Scrittura su file con JFileChooser

    Ecco il Main:
    
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Scanner;
    import javax.swing.JFileChooser;
    
    public class ProveVarie {
    
        public static void main(String[] args) throws FileNotFoundException, IOException {
            
            
            StampaMat st = new StampaMat();
            boolean ff = st.MakeMat(); 
            if (ff == true)
                
                        st.PrintMat();
        }
        
    }
Devi accedere o registrarti per scrivere nel forum
2 risposte