Salve, dovrei stampare un array di stringhe contenente la lista dei file di una directory.
Ho questo codice:
Il problema è che la classe metodiStampa vede l'array 'file' vuoto.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; } } }
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??

Rispondi quotando
