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

    Salvare i testo del GUI, ma scompare.

    Ciao a tutti, sono riuscito a risolvere vari problemi con i vostri consigli. Stò creando un programma di calcolo. con due JButton, uno "OK" che stampa su un JLabel e l'altro che salva. Ho seguito un tutorial per il tasto salva quando lo clicco scompare il testo stampato nal JLabel e il file.txt non c'è. come mai?

    codice:
    public void scriviFile() {
    		 
    		 try {
    		FileWriter fw = new FileWriter("FileOut.txt");
    		PrintWriter out = new PrintWriter(fw);
    		 s1 = Stampa.getText(); 
    		 s2 = Stampa1.getText();
    		 s3 = textData.getText(); 
    		out.print(s1);
    		out.print(s2);
    		out.print(s3);
    		fw.close();
    		} catch (IOException e) {}
    		}
    codice:
    	JButton Save = new JButton("Save");
    		Save.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent Printare) {
    				
    				String Save = Printare.getActionCommand(); 
    				 if (Save.equals ("Save") )
    					 scriviFile();
    				
    			    Stampa.setText ("");
    			    Stampa1.setText ("");
    			    textData.setText ("");
    			}
    		});
    Posso chiedervi se potete mostrarmi l'errore perchè essendo nuovo, molto spesso quando leggo nei forum mi sembra giapponese delle volte .

    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da desiderio Visualizza il messaggio
    codice:
    public void scriviFile() {
    		 
    		 try {
    		FileWriter fw = new FileWriter("FileOut.txt");
    		PrintWriter out = new PrintWriter(fw);
    		 s1 = Stampa.getText(); 
    		 s2 = Stampa1.getText();
    		 s3 = textData.getText(); 
    		out.print(s1);
    		out.print(s2);
    		out.print(s3);
    		fw.close();
    		} catch (IOException e) {}
    		}
    Qui è "abbastanza" giusto. Nel senso che tecnicamente funziona sicuramente. Manca una gestione valida delle eccezioni. Ma soprattutto, detto in generale, va sempre chiuso l'oggetto di I/O più "esterno", nel tuo caso il PrintWriter (che incapsula il FileWriter), ovvero va fatto out.close() invece che fw.close() .
    Questo ripeto, vale in generale.

    Ah, il file lo crea nella directory "corrente". Quale che sia DIPENDE da come/da dove si avvia la applicazione. Sei tu che devi verificare e sapere come avere controllo della directory corrente.

    Quote Originariamente inviata da desiderio Visualizza il messaggio
    codice:
    	JButton Save = new JButton("Save");
    		Save.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent Printare) {
    				
    				String Save = Printare.getActionCommand(); 
    				 if (Save.equals ("Save") )
    					 scriviFile();
    				
    			    Stampa.setText ("");
    			    Stampa1.setText ("");
    			    textData.setText ("");
    			}
    		});
    Qui c'è un po' di confusione già solo a livello dei nomi delle variabili! C'è una variabile Save di tipo JButton, poi però nel actionPerformed invochi getActionCommand() su un Printare (che cosa è?) e assegni la stringa ad una variabile di nuovo chiamata Save. A rigor di logica, il getActionCommand() dovresti invocarlo sulla variabile Save (il JButton) ... non Printare (che ripeto, non si capisce cosa è).
    Presumo sia questo punto quello errato che non fa invocare scriviFile().

    Rivedi bene il tutto, a partire DAI NOMI.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Intanto grazie dell'aiuto l'errore era sul fw. che bisognava scrivere out. .
    Il "PRINTARE" non l'ho modificato come dicevi e ha funzionato lo stesso però non saprei dirti perchè.
    Il file .txt l'ho trovato.
    Volevo chiederti dove si va per modificare dove salvarlo?
    Quando devo stampare i dati nel Jlabal ho usato questi: <html> <br> per andare a capo, per fare uno spazio questo: <BS>, ma come faccio a fare più spazi perchè ho cercato e provato ma alla fine me ne crea sempre uno?
    Grazie ancora.

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.