问题标签 [event-dispatch-thread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
759 浏览

java - 完成所有其他进程后,用 InvokeLater 显示的框架

恐怕这个有点棘手,因为我无法在我为这个问题编写的示例中重新创建问题(下面的示例完美运行)。希望有人可能对实际应用程序可能存在的问题有所了解。我编写了一个执行几个长文本操作的应用程序。每个操作都在自己的线程中完成。有一个由线程更新的框架,让用户看到一切进展如何。

问题在于,只有在所有线程都完成了它们的工作之后,框架才会显示发送给它的所有更新。
我已将整个应用程序简化为下面的代码,但正如我所说的,问题在于它可以在这里工作。任何想法都非常受欢迎。

0 投票
3 回答
239 浏览

java - Why do I need to have a runnable instead of calling directly from main?

Simple code from java.sun:

I can put all of this method into main(), but why do I need a separate run method that also implements the runnable to execute it? What is the idea behind this concept? Thanks.

0 投票
3 回答
2095 浏览

java - java SwingWorker 从 doInBackground() 启动可运行对象以及如何通知事件调度线程

刚学会SwingWorker并有一个问题
(我已经搜索了这个问题的答案,但没有专门解决这个设置)

我正在创建一个小型服务器,它最多只能同时连接 2-3 个连接。
我正在使用Jframe具有内部类的SwingWorker

在 SwingWorkerdoInBackground()我有:

Connection是 arunnable并声明为 中的子类SwingWorker

runnable完成之前,它会在 SQL 中写入一个条目。
那么这个runnable如何在它死之前向Jframe事件调度线程发送一个提示。
并且Jframe将检查新条目的 SQL 并将其显示给用户。

最好做什么:

1 - 创建一个接口,所有可运行的都可以向Jframe事件调度线程发送消息。

2 -对所有新连接使用SwingWorkerinsted并在服务器中调用一个方法,该方法在使用中调用方法runnablesDone()SwingWorkerJframeEventQueue.invokeLater..

3 - 或使用 PropertyChangeListener (不知何故不确定)

4 - 让每个 runnables 都有 s ref to Jframeand doEventQueue.invokeLater..

0 投票
2 回答
3123 浏览

java - 为什么 JCheckBox 上的 setSelected 会失效?

有人可以向我解释为什么我在放入时丢失了选择(由设置)setSelected()吗?这是一个错误吗?JCheckBoxJOptionPaneItemListener

奇怪的是,如果这个过程被,按我预期的那样正常工作invokeLater()setSelected()

在此处输入图像描述 在此处输入图像描述

来自SSCCE

0 投票
2 回答
111 浏览

java - 你如何在 catch 块中进行摇摆调用

在 catch 块中,我想向 textArea 显示一条错误消息以显示发生的错误。

0 投票
4 回答
1376 浏览

java - 查找事件调度线程违规

我们都知道我们应该从事件调度线程执行所有与 GUI 相关的任务,否则可能会引入奇怪的错误 - 我试着记住这条规则,但我必须承认我最近注意到了几个我没有注意到的地方。

有没有办法识别所有违反此规则的行为,以便修复它们?我已经看到这里有一个相关的 findbugs 规则但它似乎并没有为我捕获所有案例。即使在发生违规时抛出异常也会很好,因此我可以修复它(或捕获异常并记录警告,以防用户遇到相关问题。)

人们通常对此采取什么方法?

0 投票
4 回答
1641 浏览

java - java - 如何在java中检测主线程何时冻结GUI?

我想检测主线程中的一些耗时操作何时导致 gui 冻结。我的目标是自动设置和取消设置等待光标。

谢谢

0 投票
2 回答
139 浏览

java - 添加 JTextField 时不显示任何内容

如果我将代码从第一个示例更改为第二个示例,则不会显示任何内容(请参见屏幕截图:

主类:

毕达哥拉斯(截图 1):

毕达哥拉斯(截图 2):

毕达哥拉斯(截图 3):

截图 1截图 2截图 3

0 投票
3 回答
559 浏览

java - 如何指示 JComboBox 正在加载值?

我有一个 JComboBox,它的值是通过网络检索的。

我正在寻找一种方法向用户表明这一事实,当用户想要查看列表时,展开下拉列表,然后检索数据。

基本要求包括:

  1. JComboBox 的下拉菜单不应锁定 EDT,但组合的操作在有值之前不应起作用。
  2. 用户应该知道何时检索到所有数据。
  3. 指示的大小(UI 房地产)应尽可能小。

请注意,在用户想要查看组合值(即展开下拉列表)之前,不会检索数据。

我使用的解决方案:

我用 aSwingWorker来保持 UI 响应。组合框是使用 JIDE 和 JIDE 覆盖的Overlayable,JIDEInfiniteProgressPanel会听取工作人员的声音。

0 投票
4 回答
5418 浏览

java - 何时使用 SwingUtilies.invokeAndWait/invokeLater

我在某处读到,对于影响 gui 视觉效果的任何线程,它应该使用 SwingUtilities.invokeAndWait/invokeLater 在 EDT 中运行

new SwingGUI().setVisible(true);对于基本的 gui,是否有必要使用 invokeAndWait 在 EDT 行中添加类似内容?只是为了展示?

这算不算?