相关疑难解决方法(0)

在运行时Swing验证Event Dispatch Thread上的代码

是否有任何库可以检测代码以验证在事件调度线程上调用Swing组件上调用的方法?编写一些用于执行此操作的基本代码可能不会太困难,但我确信有其他人处理的边缘情况.我在运行时寻找这个,而不是单元测试.

java swing event-dispatch-thread

10
推荐指数
1
解决办法
3533
查看次数

Java Swing - 在EDT上运行

关于Swing和使用EDT进行GUI更新,我有几个问题.我刚刚开始阅读这些内容,所以我是这个领域的初学者:

  1. 在EDT上运行需要哪些操作?如果他们不这样做,只是提出一个例外?
  2. 我们实际上在EDT上有没有特定的时间?
  3. 如果我们使用我们安排任务SwingUtilities.invokeLater我们将它排入GUI更新任务的当前队列对吗?
  4. 访问上面的队列我猜是同步的,或者使用了一些并发集合,但是如果我从两个后台线程调度两个GUI更新任务,就不可能说先添加哪一个?例如,如果线程1 FIRST提交将JLable的文本设置为"是"的任务,然后,短时间之后,第二个线程出现并提交将该值设置为"no"的任务,我们是否保证结果将是"是",或者仅仅是操作系统如何安排这些事情的问题?
  5. SwingWorker究竟是如何确保done()在EDT上运行该方法的?它设置以下代码:

      future = new FutureTask<T>(callable) {
                   @Override
                   protected void done() {
                       doneEDT();
                       setState(StateValue.DONE);
                   }
               };
    
    Run Code Online (Sandbox Code Playgroud)

所以我想知道FutureTask是否以某种方式确保invokeLater被调用?

谢谢你的所有答案.

java swing event-dispatch-thread

10
推荐指数
2
解决办法
5564
查看次数

标签 统计

event-dispatch-thread ×2

java ×2

swing ×2