Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的Jframe在启动进程时冻结_Java_Jframe_Processbuilder - Fatal编程技术网

Java 我的Jframe在启动进程时冻结

Java 我的Jframe在启动进程时冻结,java,jframe,processbuilder,Java,Jframe,Processbuilder,我构建了一个从java应用程序运行exe文件的进程,所以使用start()运行,然后我的框架冻结。它正在变成一幅画。我甚至不能用X关闭它。当我最小化帧并再次打开它时,我看到帧中有黑暗。我的线程在后台运行,我可以从输出中看到,但是为什么我的帧会冻结?能否提供一些代码,问题可能是很多问题,因此它可以帮助减少其中一些问题 我建议您检查一下您是否没有暂停/睡眠任何线程 我构建了一个从java应用程序运行exe文件的进程,所以使用start()运行,然后我的框架冻结 可能是因为您在事件分派线程上启动了该进

我构建了一个从java应用程序运行exe文件的进程,所以使用start()运行,然后我的框架冻结。它正在变成一幅画。我甚至不能用X关闭它。当我最小化帧并再次打开它时,我看到帧中有黑暗。我的线程在后台运行,我可以从输出中看到,但是为什么我的帧会冻结?

能否提供一些代码,问题可能是很多问题,因此它可以帮助减少其中一些问题

我建议您检查一下您是否没有暂停/睡眠任何线程

我构建了一个从java应用程序运行exe文件的进程,所以使用start()运行,然后我的框架冻结

可能是因为您在事件分派线程上启动了该进程,而该进程正在阻塞该线程,这意味着GUI无法响应事件或重新绘制自身


该进程应在单独的线程中启动。有关更多信息,请阅读上Swing教程的部分。

线程阻塞将事件分派给其他组件的队列。这可能是一个死锁问题。代码太复杂,类太多,并且相互连接。所以我想试着解释一下:我得到了框架和5-6个类,它们扩展了线程,并且在一个while(真的)循环中。线程正在侦听web服务方法。如果我接受视频通话请求,它将显示在新帧上,我接受它并处理新帧。在处理新框架构建过程的按钮侦听器并启动它之前。所以我的videochat.exe运行,而母框冻结。当videochat.exe关闭时,我试图处理母框并创建它,但它仍然冻结。然后我尝试了invokelater,这次没有出现。进程是在事件分派线程中启动的。所以我在一个线程中启动它,然后用javax.swing.SwingUtilities.isEventDispatchThread()检查它是否仍在EDT中,现在返回false。但是我的问题没有解决。我该怎么办?有东西挡住了EDT。我无法为您调试代码。我只能为你们指出调试的方向,我找到了它,在EDT的无限循环中有一段时间。现在问题解决了。谢谢你的支持。