如何解决由于线程,我目前正在尝试更新 JTextArea
我的项目旨在将终端集成到 Swing 应用程序中。问题是一些阻塞命令阻塞了流。这就是为什么我想用一个线程将缓冲区读入标准输出中,以便“解除阻塞”输入流。
我的问题与此主题相似,Why is my JTextArea not updating?
我应用了他们所说的:使用线程来更新我的 JTextArea
。
public void appendNewText(String line) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
outputComponent.setText(outputComponent.getText() + line + "\n");
}
});
}
this.outputComponent.setText("");
processBuilder.command(shell,"-c",inputComponent.getText());
Process process = processBuilder.start();
InputStream inputStream = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = br.readLine()) != null)
appendNewText(line);
exitValue = process.waitFor();
为什么现在不更新了?我对此表示怀疑:
exitValue = process.waitFor();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。