Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    35

    Inserire dati in JLabel

    Ciao a tutti ragà,sto creando un programmino,tutto appsto,ho fatto tutto.Dove sta il problema?semplice.

    Il programma ha la funzione di salvare e riaprire i dati.Salvo i dati in modalità append e poi cerco di riaprire,riapre il file ma si vede solo l'ultima stringa se l'inserisco in un jlabel,come faccio per far vedere tutto il contenuto del file in una sola jlabel?

    grazie in anticipo...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Inserire dati in JLabel

    Originariamente inviato da Snipper
    Il programma ha la funzione di salvare e riaprire i dati.Salvo i dati in modalità append e poi cerco di riaprire,riapre il file ma si vede solo l'ultima stringa se l'inserisco in un jlabel,come faccio per far vedere tutto il contenuto del file in una sola jlabel?
    Beh, innanzitutto JLabel non è proprio il componente più adatto per visualizzare del testo multi-riga. Si può visualizzare del testo su più righe in un JLabel ma solo usando le funzionalità di rendering di HTML in Swing. Nella label dovresti mettere una cosa del tipo "<html>blabla
    blabla</html>".

    Quindi: a) Devi proprio usare JLabel? b) Come fai la lettura dal file? La fai "a righe"? E cosa ne fai delle righe?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: Re: Inserire dati in JLabel

    Originariamente inviato da andbin
    Beh, innanzitutto JLabel non è proprio il componente più adatto per visualizzare del testo multi-riga. Si può visualizzare del testo su più righe in un JLabel ma solo usando le funzionalità di rendering di HTML in Swing. Nella label dovresti mettere una cosa del tipo "<html>blabla
    blabla</html>".

    Quindi: a) Devi proprio usare JLabel? b) Come fai la lettura dal file? La fai "a righe"? E cosa ne fai delle righe?
    In sostanza... se non posti nemmeno una riga di codice, come si fa a sapere dove sbagli? Andiamo ad intuito?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    35
    lo so che per fare multi-riga in una jlabel devo usare l'html al suo interno,infatti faccio così,ma il risultato non cambia.Comunque ecco lo spezzone di codice che apre il file e lo inserisce all'interno del JLabel:

    codice:
    File o = new File(open_name.getText()+".txt");
    					FileInputStream fid = null;
    					try {
    						fid = new FileInputStream(o);
    					} catch (FileNotFoundException e1) {
    						e1.printStackTrace();
    					}
    					InputStreamReader in = new InputStreamReader(fid);
    					BufferedReader r = new BufferedReader(in);
    					String text = null;
    					content = new JLabel();
    
    					content.setBounds(800,400,300,300);
    					getContentPane().add(content);
    					try {
    						text = r.readLine();
    					} catch (IOException e1) {
    						e1.printStackTrace();
    					}
    					while(text != null)
    					{
    						content.setText("<html>"+text+"</html>
    ");
    						
    						try {
    							text = r.readLine();
    						} catch (IOException e1) {
    							e1.printStackTrace();
    						}
    					}
    la variabile content è la JLabel dichiarata in precedenza...

    Dove sbaglio?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Snipper
    codice:
    					while(text != null)
    					{
    						content.setText("<html>"+text+"</html>
    ");
    Qui l'unica cosa che si vede è che ad ogni ciclo sovrascrivi il testo nella label!!! Non ci arrivi a pensare che devi avere un testo iniziale "<html>", leggere ogni riga, accodarla con anche, dietro, il "
    " e poi alla fine (anche se non sarebbe obbligatorio) accodare "</html>" ??

    E ovviamente ti conviene usare StringBuffer/StringBuilder.

    E comunque tutta la parte di apertura e ciclo di lettura è "fumosa" per quanto riguarda, anche, la gestione delle eccezioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    35
    mi puoi fare un esempio in codice xfav?

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    35
    Scusate il doppio post...ci sono riuscito semplicemente dichiarando la JLabel all'interno del ciclo while...grazie per l'aiuto...

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da Snipper
    Scusate il doppio post...ci sono riuscito semplicemente dichiarando la JLabel all'interno del ciclo while...grazie per l'aiuto...
    Eeehhh???

    Cioè, scusa, mi vuoi dire che ad ogni riga letta dal file tu istanzi una nuova JLabel? Cioè, se il file ha 10 righe, tu istanzi 10 JLabel??

    Ma non avevi detto di volere UNA JLabel che visualizzi tutte le righe??

    Mah...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    35
    sisi lo so,per fare la JLabel a 10 righe dovevo mettere il rendering dell'html,ma così non andava,ho provato ad istanziare un tot di JLabel per un tot di righe e ora va...

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.