问题标签 [edt]
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.
java - 为什么会发生 EDT 违规?
我开始用它CheckThreadViolationRepaintManager
来检测 EDT 违规行为。
它抱怨:
因为它不喜欢generatePartnerSelectionPanel()
,因为它不喜欢JPanel panel = new JPanel();
这种方法。但我不知道为什么应该有一个问题。
更详细地说,generatePartnerSelectionPanel()
生成一个 JPanel(我不在 EDT 中执行此操作),然后在getParameter
我将 JPanel 添加到主 JFrame 并在 EDT 中执行此操作(使用invokeLater
)。
那么,为什么会有问题呢?
java - Java - SwingWorker - process() 方法中的问题
我是javax.swing.SwingWorker
第一次使用。
我想JLabel
从 swing worker 发布的中期结果中更新 a 如下:
现在要更新JLabel
,我编写了以下代码:
上面的代码有效,但我的问题(或者更具体地说,我的疑问)如下:
上面的 swing worker 任务是一个匿名的内部类,因此它可以访问label
字段。
但是,如果我想让摇摆工人阶级成为非内部阶级怎么办。我是否需要label
作为参数传递给 swing worker 类的构造函数,以便 process() 方法可以访问。
或者有没有其他方法?
当 Swing 工作类不是内部类时,其他开发人员遵循什么方法从 Swing 工作类的结果更新 UI 组件?
java - 我可以在 EDT 中运行 2 个 GUI 操作吗?
在 JDialog 中,当用户单击 JButton 时,我想在 EDT 中执行 2 个 GUI 操作:
- 显示另一个带有忙碌图标的小 JDialog,告诉用户“请稍候,错误的进程结束”。
- 在 JTable 中插入大量记录。
当我尝试执行这两个操作时,“请稍候”对话框会按预期阻止插入过程。
正如您所看到的,这两个操作都必须在 EDT 中完成......那么有解决方案吗?
java - 是否需要在 EDT 上使用 java.awt.Desktop?
环顾四周,我找不到要求在 EDT 上使用 java.awt.Desktop 的要求,我想不出应该这样做的原因,但我找不到任何明确说明它的地方好吧,所以我想我会问,毕竟它是一个awt类。
是否有任何地方正式说,一种方式或另一种方式?
text-editor - EDT 编辑器 - 一种现代方法?
我很久以前在 VMS 上使用过 EDT 编辑器。这个优秀的文本编辑器有现代实现吗?如果有,有源代码吗?也许它被 Emacs 和 Vim 规避了?
谢谢
java - 摆动事件处理程序是否应该在 EDT 上的事件之后排队?
摆动事件处理代码是否应该在 EDT 上的事件之后排队?如果是这样,是事件源负责调度事件处理程序,还是事件处理程序负责稍后调度实际的处理代码?
考虑:
SNIP 1
收到事件时运行处理程序代码。如果由JButton
负责安排事件EventQueue.invokeLater()
,那么这可能是正确的。SNIP 2
接收事件,并在接收到事件后负责调度处理程序代码(并由该特定事件类型的所有其他侦听器处理)。哪个是对的?
编辑:为了清楚起见,我想稍后在 EDT 上安排事件处理程序,因为在第一个事件处理程序中更改状态可能会在事件发生时隐藏组件的其他事件处理程序的原始状态。
java - 使用带有 Swing Timer 的 Java 全屏独占模式
再会!我想使用具有全屏独占模式的标准摇摆计时器。为此,我应用了 SwingWorker 来控制应设置图形模式的事件。以下所有步骤都在 run 方法中执行。从 main 调用 run()。1)首先,我创建我的 SwingWorker 对象并覆盖它的两个方法(doInBackground 和 done)。Init 是重要的方法,因为它应该将所有需要的图形设置设置为当前 JFrame 对象并将我的关键侦听器对象(称为 screen_list)与它绑定:
2)然后我创建了实现 ActionListener 和 Key Listener 的屏幕侦听器,它在 init() 方法中与 disp 绑定为 KeyListener:
3)我创建并初始化我的摇摆定时器并启动它;4)最后我调用执行方法:
我编写的类 ScreenListener 实现了 KeyListener 和 ActionListener。在 ActionPerfomed 方法中,我检查了 worker 是否完成了它的工作(init 方法),如果是,我会参考当前显示模式并绘制一些东西:
为什么不处理来自键盘的事件?
java - 摆动线程安全样板
为简单起见,想象一个下载文件的应用程序。有一个简单的 GUI,带有一个显示进度的标签。为了避免违反 EDT,像每个合法公民一样,我在一个线程(主)中下载文件,并在另一个线程(EDT)中更新 GUI。因此,这是相关的伪代码块:
我喜欢 Java 不支持闭包的事实,而且代码对我来说非常清晰。除了笑话,我想知道......我做错了吗?是否有可能在每个方法等中使用SwingUtilities
匿名实现来消除所有这些丑陋的样板?Runnable
我的情况比这稍微复杂一些,但我试图通过实现代理或类似的东西来避免过度设计。
javascript - 使用 toLocaleString() 从通过 javascript 返回的日期中删除“EDT”的最佳方法
我对 javascript 比较陌生,所以这可能是一个非常简单的问题。在使用 toLocaleString 返回的日期之后,是否有一种简单的方法可以阻止“EDT”打印?谢谢!
java - 在 Swing 中,您可以将事件发布到 EDT 事件队列的顶部吗?
我正在寻找一种方法来完成 InvokeLater() 函数所做的事情,而不是将事件放在事件队列的底部,而是将其放在顶部。至少我认为这会做我想要的,也许有更好的方法。下面描述了我要复制的内容。
多年前,我在 Mac 上使用了一个 c++ 框架,该框架具有在处理当前事件时可以将 Chore 对象添加到 CriticalChore 列表的功能。您可以在执行相当于 Swings EDT 的代码时执行此操作。在当前事件完成处理之后,就在调用 GetNextEvent() 之前,框架将检查 CriticalChore 列表是否为空。如果列表中有项目,则将调用 Perform()(即 run())函数。完成列表后,所有项目都被删除。
这个功能真的很方便。很多时候,在早期处理事件时,您知道您需要执行一些额外的代码,但只有在处理了许多其他代码之后。但最重要的是,是否需要在处理 EDT 队列中的任何其他事件之前处理此代码。