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):
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);
}
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.
Da quel che noto sembra essere un conflitto di thread ma non so come risolverlo.
Grazie per l'aiuto.
Naruto 92