java - 在循环中处理其他 GUI 事件

标签 java swing

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

我正在寻找告诉 JVM 在继续循环之前处理其他 GUI 事件(例如按钮单击)的内容。

Java 7 Swing 中是否有某些东西可以满足我的要求,或者我真的必须自己搞乱多线程(我还没有那么远......)?

最佳答案

,与 Qt 框架(基于 C++)不同,Java 不支持手动处理和/或分派(dispatch) UI 事件(至少在撰写本文时是 2022 年)。

换句话说,不要阻塞 EDT(事件调度线程)——当这种情况发生时,GUI 将“卡住”(目前还没有出路)。 而不是调用 Thread.sleep(n) 实现:

  • 用于重复任务的 Swing 计时器
  • 或用于长时间运行任务的 SwingWorker

参见 Concurrency in Swing了解更多详情。

关于java - 在循环中处理其他 GUI 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391239/

相关文章:

java - Java 中的一些方法或现有设计模式可防止因参数检查而出现大量 if/else 条件

java - 处理中的文本质量

Java数组: direct access to component in array

java - 单击 j/ToggleButton 然后设置图标/图像

java - NumberFormatter 的行为不符合预期

java - 什么时候需要在 swing 组件上调用 revalidate() 以使其刷新,什么时候不需要?

java - 索引 0 处的数组为空

java - keytool 将 pkcs12 keystore 报告为 'jks'

Java:我的 JFormattedTextField 中不良行为的来源在哪里?

java - 异常 “java.lang.AbstractMethodError: org.codehaus.groovy.control.CompilationUnit$ClassgenCallback.call(Lorg/objectweb/asm/ClassVisitor;)V"