Salve a tutti!
Vi spiego subito il mio problema:
ho un'applicazione gestionale dove creo diversi report usando Jasperreports.
Adesso vorrei implementare una ProgressBar, un ProgressMonitor o un ProgressMonitorInputStream che mi indichi lo stato di caricamento dei report, visto che sono un pò lentini a venir fuori.
Ecco il mio codice (mi scuso per il disordine nel sorgente ma son di fretta):
Ma quando faccio scattare l'evento inerente a quel ActionListener il programma si blocca e la finestra che dovrebbe apparire mostrandomi lo stato di caricamento non appare.codice:try { InputStream input=getClass().getResourceAsStream("/report/elencoAlunni.jasper"); JasperPrint jp=JasperFillManager.fillReport(input, null, con); InputStream in=new BufferedInputStream(new ProgressMonitorInputStream(this, "Creazione del report...", input)); while(in.read()!=-1){ Thread.sleep(10); } JasperViewer.viewReport(jp, false); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Errore interno durante la creazione del report\n" + ex.getMessage(), "Errore", JOptionPane.ERROR_MESSAGE); }
Da quel che noto sembra essere un conflitto di thread ma non so come risolverlo.
Grazie per l'aiuto.
Naruto 92

Rispondi quotando