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