Ho un editor di testo fatto in java.
Il testo viene visualizzato all'interno di un jtextpane
Quando leggo da filesystem un file di testo e lo voglio visualizzare con il mio editor, faccio comparire una jprogressbar di attesa caricamento file.
Quando arrivo all'istruzione
editor.setText(text);
dove editor è il mio jtextpane e text è il testo da visaulizzare a video, il programma si blocca
Penso sia un problema di comunicazione fra thread, ma non so risolverlo.
Ho provato anche ad usare le righe
ma il programma si blocca lo stesso.codice:javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { editor.setText(text); } }
Sapete dirmi come risolvere il problema?
codice:public void openFile(String fileName) { final String readFile = fileName; Thread thread = new Thread() { public void run() { try { // open the file, wrapping it in a ProgressMonitorInputStream StringBuffer contents = new StringBuffer(); InputStream in = new FileInputStream(readFile); ProgressMonitorInputStream pm = new ProgressMonitorInputStream( frame, "Reading the big file", in); int c = 0; while ((c = pm.read()) != -1) { contents.append((char) c); } pm.close(); String text = contents.toString(); editor.setText(text); } catch (Exception ex) { ex.printStackTrace(); } } }; thread.start(); }

Rispondi quotando