当前位置:编程学习 > JAVA >>

BufferReader.Readline阻塞swing的事件处理线程

流程:
1 Runtime.exec创建子进程
2 在子进程中,创建【线程1】,对System.in,进行BufferReader.Readline操作
3 【线程1】被挂起
4 创建JFrame,setVisible(true),

问题:gui显示后,对鼠标和键盘操作没有反应。

但是,如果先调用setVisible(true),swing的事件处理线程等先创建完后,
再调用BufferReader.Readline,进行挂起,一切都没有 问题。

这里,感觉是java的一个bug。
不知道,是 我哪里 出错了。 --------------------编程问答-------------------- 不知道算不算JAVA 的BUG, 在处理System.in输入流的时候,JAVA更多的是依赖本地操作系统的底层API, 可能就把鼠标和键盘的输入事件给截断了 --------------------编程问答-------------------- Swing有时就这样。 --------------------编程问答-------------------- 那是因为你没有理解swing的线程机制:事件派发线程。要将swing的绘制,鼠标键盘事件等放到事件派发线程里处理,其余的操作要放在事件派发线程之外处理。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,