Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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 在循环中处理其他GUI事件_Java_Swing - Fatal编程技术网

Java 在循环中处理其他GUI事件

Java 在循环中处理其他GUI事件,java,swing,Java,Swing,我正在编写一个Java7Swing应用程序,它调用一个非GUI类在循环中执行某些操作。不幸的是,我无法在循环运行时与GUI交互。在该循环中是否可能强制处理GUI事件 我正在搜索一些东西,告诉JVM在继续循环之前处理其他GUI事件,如按钮单击 Java 7 Swing中是否有我想要的东西,或者我真的必须自己处理多线程吗?我还没走那么远…?使用。基本上,所有UI事件处理总是在一个特定的线程上完成,称为事件调度线程,在该线程中执行任何其他操作都会阻止处理UI事件鼠标单击、键盘输入等,从而使UI挂起 S

我正在编写一个Java7Swing应用程序,它调用一个非GUI类在循环中执行某些操作。不幸的是,我无法在循环运行时与GUI交互。在该循环中是否可能强制处理GUI事件

我正在搜索一些东西,告诉JVM在继续循环之前处理其他GUI事件,如按钮单击

Java 7 Swing中是否有我想要的东西,或者我真的必须自己处理多线程吗?我还没走那么远…?

使用。基本上,所有UI事件处理总是在一个特定的线程上完成,称为事件调度线程,在该线程中执行任何其他操作都会阻止处理UI事件鼠标单击、键盘输入等,从而使UI挂起

SwingWorker类被添加到JRE中,专门用于在后台而不是在UI线程中执行耗时的任务,并允许您在其他地方轻松完成繁重的工作,可以选择每隔一段时间更新UI,也可以选择在完成后更新UI。您只需重写特定的方法doInBackground和done就可以做到这一点,而且不需要直接处理线程

包含开始使用它所需的一切,包括示例代码。

使用。基本上,所有UI事件处理总是在一个特定的线程上完成,称为事件调度线程,在该线程中执行任何其他操作都会阻止处理UI事件鼠标单击、键盘输入等,从而使UI挂起

SwingWorker类被添加到JRE中,专门用于在后台而不是在UI线程中执行耗时的任务,并允许您在其他地方轻松完成繁重的工作,可以选择每隔一段时间更新UI,也可以选择在完成后更新UI。您只需重写特定的方法doInBackground和done就可以做到这一点,而且不需要直接处理线程


包含开始使用它所需的一切,包括示例代码。

不要阻止EDT事件调度线程-发生这种情况时,GUI将“冻结”。不要调用Thread.sleepn,而是为重复任务实现一个Swing计时器,或为长时间运行的任务实现一个SwingWorker。有关更多详细信息,请参阅。

不要阻止EDT事件调度线程-发生这种情况时,GUI将“冻结”。不要调用Thread.sleepn,而是为重复任务实现一个Swing计时器,或为长时间运行的任务实现一个SwingWorker。有关更多详细信息,请参阅。

是什么阻止您为循环运行线程?事实上,我对线程还没有太多了解。现在是学习的时候了;-但是像swingworker这样的特殊答案已经给出了!是什么阻止您运行线程循环?事实上,我还没有学到很多关于线程的知识。那么现在是学习的时候了;-但是像swingworker这样的特殊答案已经给出了+1... @wullxz还可以参见演示SwingWorker的示例。安德鲁斯在Thread.sleep上的评论更深入了这一点。SwingWorker做到了这一点。但很高兴知道还有计时器之类的东西+1... @wullxz还可以参见演示SwingWorker的示例。安德鲁斯在Thread.sleep上的评论更深入了这一点。SwingWorker做到了这一点。但很高兴知道还有计时器之类的东西