Ho il seguente problema
Ho un programma MyProgram composto da JTextPane su cui visualizzo del smeplice testo
Questo programma è implementato come un Thread che sta in ascolto su una porta
Quando l'utente decide di aprire un file di testo con il programma MyProgram, il testo viene spedito al ThreadServer.
Fino a qui tutto funziona, il testo viene spedito correttamente sul socket, e il ThreadServer lo riceve, infatti se faccio un
System.out.println(testo);
Sulla console posso leggere il testo contenuto nel file
A questo punto devo visualizzare questo testo sul mio componente swing JTextPane e lo faccio con l'istruzione
JTextPane editor = new JTextPane();
************************
if (editor != null)
editor.setText(testo);
Il porgramma si blocca a questa riga e non riesco a capire come mai. Se debuggo (uso eclipse) mi dice
Thread not suspended stack frame unavailable
Il thread server è implementato così:
Se commento la rigacodice:import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import javax.swing.JFrame; public class MyServerThread extends Thread { private Socket socket = null; public MyServerThread(Socket socket) { super("MyServerThread"); this.socket = socket; } public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String inputLine = null; String fileAbsPath = null; while ((inputLine = in.readLine()) != null) { fileAbsPath = inputLine; } in.close(); BuildEditor frame = BuildEditor.frame; if (fileAbsPath != null && !fileAbsPath.equals("null")) { OpenFile.openFile(fileAbsPath); } TextEditor editor = frame.editor; if (editor != null) String text = OpenFile.getTextFile(); System.out.println("testooo: "+text);//arrivo fino a questa riga editor.setText(text);//qui si blocca System.out.println("FINE");//qui non si arriva mai } } catch (IOException e1) { e1.printStackTrace(); } } }
editor.setText(text);
Il programma non si blocca. Il programma si blocca anche se al posto della sopracitata riga metto
editor.setText("prova");