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

    [PRINTABLE] Problema Stampa in Java

    Salve, dovrei stampare un array di stringhe contenente la lista dei file di una directory.
    Ho questo codice:
    codice:
    public String[] file;
    	public String path;
    	public int grandezza;
    	
    	public void load(String path){
    		try{
    			this.path=path;
    			File dir = new File(path);	//apro la cartella inserita nella textfield
    			grandezza=dir.list().length;
    			file = new String[grandezza];  //visualizza la lista di file in una cartella
    			file = dir.list();
    		}catch(Exception e){JOptionPane.showMessageDialog(null, e+" directory non trovata.","Errore Directory",JOptionPane.ERROR_MESSAGE);}
    	}
    	
    	public int getGrandezza(){
    		return grandezza;
    	}
    	
    	public String[] getListFile(){
    		return file;
    	}
    	
    	public void impostaStampa(){
    		PrinterJob pj = PrinterJob.getPrinterJob();
    		metodiStampa m =new metodiStampa();
    		
    		pj.setJobName("Contenuto_Directory");
    		pj.setPrintable(m);
    		
    		pj.printDialog();
    		try{
    			pj.print();
    		}catch(Exception ex){JOptionPane.showMessageDialog(null, ex+" mammt.","Errore",JOptionPane.ERROR_MESSAGE);}
    	}
    
    
    	class metodiStampa implements Printable {
    			public int print(Graphics grap, PageFormat pageFormat, int pageIndex) throws PrinterException {
    				if(pageIndex > 0)
    				    return NO_SUCH_PAGE;
    
    
    				for(int i=0;i<getGrandezza();i++){
    					System.out.println(file[i]);
    					grap.drawString(file[i], (int)pageFormat.getImageableX()+60, (int)pageFormat.getImageableY()+50+(10*i));
    				}
    				return PAGE_EXISTS;
    			}
    
    
    		}
    }
    Il problema è che la classe metodiStampa vede l'array 'file' vuoto.
    Ovviamente questa classe è unita ad un'altra classe in cui gestisco un frame nel quale c'è un pulsante "Stampa" che mi richiama il metodo 'impostaStampa'.

    NB. ovviamente il metodo load(path) lo richiamo prima di stampare, così che mi dovrebbe inizializzare l'array

    Soluzioni??

  2. #2
    Beh se chiami per prima il metodo load non dovresti avere nessun problema, l'array dovrebbe essere pieno.
    Anche se dichiarare public String[] file non è tanto bello, visto che hai il metodo public String[] getListFile() protresti usare quello per recuperare il contenuto dell'array.
    Fai un debug così magari ti rendi conto della fine che fà il contenuto dell'array.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Grazie ho risolto, ho dovuto prendere i dati e trasferirli in vari metodi fino alla classe che estende printable

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.