【发布时间】:2016-06-02 13:50:52
【问题描述】:
我在我的 GUI 的 java 代码中使用 SWT,并且我正在执行一个进程,他的代码是用 python 编写的。 我使用进程输入流来捕捉进程上的打印并将它们立即写入我的 GUI。
我的代码:
in = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
printToTerminal(line);
}
和 printToTerminal 函数:
protected void printToTerminal(String text) {
terminal.append(text + "\n");
terminal.redraw();
terminal.update();
}
终端是一个文本对象,我想附加文本,然后使用重绘和更新,以便立即向用户显示该行。 我的问题是我的 GUI 被卡住了,因为 while 循环完成了这项工作并获取了线条,但我似乎无法在不卡住我的 GUI 的情况下获得获取线条的解决方案。 我尝试使用 display.async 函数并在其中包含 while 循环,但它仍然没有工作,我的 GUI 卡住了。
有没有办法为我的进程获取输入流并将其打印到我的 GUI 而不会卡住它?
感谢您的帮助。
【问题讨论】:
-
为什么这个问题被标记为 Python?
-
我错误地删除了标记
标签: java user-interface swt inputstream