Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347

    [Java-Swing] Implementare un file chooser da solo

    Ciao, stiamo facendo da poco un po di grafica all'università, così mi è venuta l'idea di implementare un JFileChooser (senza alcun parent) in un programmino che abbiamo fatto qualche tempo fa che conta parole, linee e caratteri di un file di testo, quindi ho scritto così:
    codice:
     
    package poo.file;
    
    import java.awt.event.KeyEvent;
    import java.io.*;
    import java.util.*;
    import javax.swing.JFileChooser;
    import javax.swing.filechooser.*;
    import javax.swing.filechooser.FileFilter;
    
    public class WCL{
    	public static void main(String[] args){
    		System.out.println("Conta parole, caratteri e linee di un file di testo");
    		JFileChooser open = new JFileChooser();
    		FileFilter txt = new FileNameExtensionFilter("File di testo  (*.txt)", "txt", "java", "rtf", "cpp", "c", "h");
    		open.setFileFilter(txt);
    		open.setApproveButtonText("Apri");
    		open.setApproveButtonMnemonic(KeyEvent.VK_A);
    		Scanner sc=new Scanner(System.in);
    		System.out.print("Nome file: ");
    		String nomeFile=sc.nextLine();
    		BufferedReader br=null;
    		int cw=0, cc=0, cl=0;
    		try{
    			br=new BufferedReader(new FileReader(nomeFile));
    			for(;;){
    				String linea=br.readLine();
    				if(linea == null)
    					break;
    				cl++;
    				cc+=linea.length();
    				Scanner sl=new Scanner(linea);
    				sl.useDelimiter("[^A-Za-z0-9]+");
    				while(sl.hasNext()){
    					sl.next();
    					cw++;
    				}
    			}
    		}catch(Exception e){
    			System.out.println("Errore di lettura!");
    		}finally{
    			try{
    				if(br != null)
    					br.close();
    			}catch(Exception e){
    				System.out.println("Errore di lettura!");
    			}
    		}
    		System.out.println("Parole: " + cw + ", Caratteri: " + cc + ", Linee: "+ cl);
    	}
    }
    ma non so proprio come continuare...(tralasciate le linee di codice che vanno sostituite tipo i print e lo scanner)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da John360
    ma non so proprio come continuare...
    Cioè? Cosa manca? Qual è il problema? Spiega i tuoi dubbi, così gli utenti possono darti suggerimenti mirati.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    codice:
     
    JFileChooser open = new JFileChooser();
    FileFilter txt = new FileNameExtensionFilter("File di testo  (*.txt)", "txt", "java","rtf", "cpp", "c","h");
    open.setFileFilter(txt);
    open.setApproveButtonText("Apri");
    open.setApproveButtonMnemonic(KeyEvent.VK_A);
    ecco, dopo questo non ho la più pallida idea di come continuare.... come far visualizzare il filechooser, come capire cosa ha cliccato l'utente e come prendere il file selezionato per utilizzarlo nel programma... lo so che non è un dubbio preciso ma non ho la minima idea di quello che devo fare XD

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da John360
    codice:
     
    JFileChooser open = new JFileChooser();
    FileFilter txt = new FileNameExtensionFilter("File di testo  (*.txt)", "txt", "java","rtf", "cpp", "c","h");
    open.setFileFilter(txt);
    open.setApproveButtonText("Apri");
    open.setApproveButtonMnemonic(KeyEvent.VK_A);
    ecco, dopo questo non ho la più pallida idea di come continuare.... come far visualizzare il filechooser, come capire cosa ha cliccato l'utente e come prendere il file selezionato per utilizzarlo nel programma... lo so che non è un dubbio preciso ma non ho la minima idea di quello che devo fare XD
    Hai letto la documentazione della classe e il tutorial Oracle sui file chooser? Mi sembrano esaurienti.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    si li ho letti... infatti quel paio di righe le ho scritte con l'aiuto dei docs, ma poi non ho capito il seguito... ad esempio: showOpenDialog ritorna un valore che corrisponde a quello che ha cliccato l'utente e quindi lo passiamo ad una variabile, però gli dobbiamo passare il parent, cosa che io non ci voglio mettere... ora non so se sto sbagliando ragionamento, forse un parent va messo sempre? io volevo solo implementare il selezionatore di file senza alcuna interfaccia dietro...

  6. #6
    codice:
    JFileChooser scegliFile = new JFileChooser();        
    int returnVal = scegliFile.showOpenDialog(null);
       if (returnVal == JFileChooser.APPROVE_OPTION) {
          File file = scegliFile.getSelectedFile();
    }
    credo che quuesto sia sufficiente a chiarire i tuoi dubbi...oppure no?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    ah quindi non c'è bisogno di nessun listener?
    EDIT: e poi come ho fatto a non pensare di inserire null... XD

  8. #8
    tranquillo a volte le soluzioni più banali vengono scartate al metalivello

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    347
    e se invece al posto di quell'if volessi mettere un listener? si potrebbe fare? se si me lo scriveresti gentilmente? scusa se chiedo troppo XD

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da John360
    e se invece al posto di quell'if volessi mettere un listener? si potrebbe fare? se si me lo scriveresti gentilmente? scusa se chiedo troppo XD
    Listener de che? Gli ascoltatori sono entità che osservano una sorgente di eventi e notificano quando un evento (del loro tipo) si verifica, in questo contesto cosa c'entra? Hai qualcosa che ti restituisce un risultato e basta, finisce lì.

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.