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??