问题标签 [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.

0 投票
1 回答
125 浏览

emacs - Emacs Tpu-edt 仿真滚动边距启动

当我使用 tpu-edt 仿真启动 emacs 时,谁能帮我自动启用滚动边距?目前,我的 _emacs 文件(WinXP)包含以下行:

我发现 TPU 效果很好,我可以手动提供命令

然后它会提示我输入顶部和底部参数,并在我提供它们时正常工作。我尝试将 tpu-extras.el 文件中的示例行添加到 _emacs 文件中:

但我收到消息:
符号的函数定义无效:tpu-set-scroll-margin

帮助!滚动边距是有史以来最好的功能,我希望它们永远开启!

0 投票
3 回答
588 浏览

java - 带有 GUI 的 Java Swing 独立内核

我不明白如何将程序的核心与程序的 GUI 部分分开。实际上,网络上的所有示例都表明任何 GUI 操作都必须使用 SwingUtilities.invokeLater() 方法执行。

问题是我不明白如何使用此方法仅处理我的 GUI 部分以及核心和 GUI 如何进行通信。

例如,我有一个类具有一些计算的 GUI 显示的责任:

我有我的程序的核心:

我知道这种架构并不理想,但我不得不使用它。我的问题是,我是否使用 EDT 将 GUI 部分和核心部分分开?而且,如果答案是肯定的,我该怎么做?

如果可能的话,我需要 EDT 调用对使用 GUI 类的用户是透明的。

编辑:

GUI 类的以下转换是否具有预期的行为?

0 投票
2 回答
441 浏览

java - 从 EDT 线程调用非 EDT 线程上的 Future.get() 可以吗?

这是在单元测试的背景下(发生时)。

在测试结束时,无论结果如何,我都希望代码检查JFileChooser对话框的存在(可见性)......如果可见,则将其关闭。

当然,有不同的方法可以解除对话,但为了模仿人类行为(并举一个我在这里关心的问题的例子),我选择使用java.awt.Robot. 后者的方法应该在非 EDT 线程中运行。

事实上,我已经扩展了 Robot 以包含一个名为 的便捷方法type_input,所以

先按 Alt,然后 F4,然后释放 F4,然后 Alt:就像人类关闭窗口/对话框一样。

我提交Runnable使用invokeAndWait,因为我不希望代码在此对话框被关闭之前运行到下一个测试。我必须在 EDT 中测试可见性和焦点。但正如我所说,Robot 方法必须在非 EDT 中运行。

get()在 EDT 中这样进行是否有任何潜在问题?它是否可能导致 GUI 无响应?问题是,我听说该框架能够在某些条件下“启动一个新的 EDT 泵”。我不得不承认,这是我觉得自己最不了解的与 EDT 相关的问题之一……

之后

正如我在回复中所说,这不是针对手头案例的一个特别实用的解决方案:我真的想了解另一个 EDT“事件泵”是否以及何时启动并Future.get()阻塞 EDT。正如我所说,我发现这整个方面很难理解。我使用JOptionPane's 的静态方法(必须在 EDT 中运行,请参阅 SO ad 上的帖子)向我证明这些方法(确实会阻止 EDT!)实际上似乎并没有阻止 GUI 运行(注意不要与这些JOptionPanes 或它们JDialog的 s 是模态的还是非模态的混淆)。

我的理解是,这是因为“框架”随后启动了另一个“事件泵”。那么它可以在这里这样做吗?

0 投票
2 回答
2628 浏览

java - 如何从挂起的 Java Swing 应用程序中解释这个线程转储?

我从挂起的java swing 应用程序中获得了以下线程转储。单击按钮后它挂起,GUI 变为空白。套接字通信和任务管理中的其他线程仍在工作(我可以从日志文件中得知)。我删除了一些不相关的输出。

#13 AW-EventQueue-0应该通过套接字发送一个命令,但在那里似乎失败了。#20和# 21W-EventQueue-0-SharedResourceRunner与 #13 不一样?似乎没有死锁,但 GUI 没有响应并变成空白。

您是否看到有关挂起原因的任何有用信息?

0 投票
1 回答
134 浏览

java - 如何丢弃/合并重复的 AWT 事件?

当用户执行某些操作(例如单击按钮)时,我需要在 JLabel 中显示状态。此状态需要在 2 秒后消失。我为此使用以下内容。

但是,用户可能多次单击该按钮并且该计时器被多次触发。这具有不希望的效果。当一个按钮被点击 3 次时。

第 0 秒:第 1 次点击:标签在第 2 秒消失

第 1 秒:第 2 次点击:标签在第 3 秒消失

第 2 秒:第 3 次点击:标签在第 4 秒消失

在这里,标签需要在第 4 秒后消失,但会在第 2 秒后消失。因此,我希望仅在最后一个事件后延迟 2 秒隐藏此标签

为了处理这个问题,我使用了一个原子计数器。

使用 counter.incrementAndGet() 为每个任务分配一个唯一的“taskCounter”

.

只有当它是最后一个被触发的事件时才会执行上述操作。确保我的标签在最后一个事件后至少 2 秒保持可见。

有没有更好的方法来处理这个问题?

0 投票
0 回答
22 浏览

java - 应该在 EDT 中运行所有/大多数 awt.Toolkit 方法吗?

...具体来说,我正在使用 getSystemClipboard()... 然后执行诸如获取和设置内容之类的操作。

在 API 文档(Java 7)的开头它说:

如果没有明确指定相反的情况,许多 GUI 事件可能会异步传递给用户。以及许多 GUI 操作可以异步执行。这个事实意味着,如果设置了组件的状态,然后立即查询该状态,则返回值可能尚未反映请求的更改。

...我完全不清楚这与 Toolkit 的方法(和剪贴板)是否应该在 EDT 中运行有什么关系...!

0 投票
2 回答
1795 浏览

axapta - 如何使用定义的 EDT 查找所有表?

如何创建一个查找包含特定扩展数据类型的所有表的作业?

我找到了这个工作,但它给了我一个错误: https ://fredshen.wordpress.com/2006/02/05/find-out-tables- contains-specific-edt/

0 投票
1 回答
1130 浏览

java - 为什么要在 EDT 线程之外调用 SwingUtils.invokeAndWait() 方法?

编辑:我已经参考了这个链接,我能够理解 InvokeLater 的代码流。我的问题是,为什么这个逻辑是这样实现的?有什么具体原因吗?


以下是我的代码:

第一个问题(使用时InvokeAndWait):

为什么它的实现方式是InvocationTargetException在 EDT 线程中调用时抛出一个?

第二个问题(使用时InvokeLater):

为什么 InvokeLater 允许这样做?

嗯,这是我对 EDT 线程的基本理解:

调用并等待

  • 将作业 F 放入 EDT 事件队列并等待 EDT 执行它。
  • 此调用阻塞,直到所有未决的 AWT 事件(A、B、C、D、E)都已处理并(然后)执行 F,之后控制返回。
  • 当且仅当提交的作业完成时返回。(控制在 F 完成后返回。)
  • 从技术上讲,是同步阻塞调用。

调用后

  • 将作业 F 放入 EDT Queue ,但不等待其完成。(基本上,发布和返回调用)。
  • 如果我们不关心作业的完成,我们可以使用 InvokeLater。
  • 从技术上讲,异步非阻塞调用。
0 投票
0 回答
202 浏览

java - Swing 中的多个 EventDispatcher 线程

在一个大项目中,我在日志中发现在较长的运行时间后使用了多个事件调度程序线程:

日志输出来自一个检测具有相似名称的多个线程的函数。该应用程序是通过 webstart 启动的,所以一个 edt 可能在启动时用于 JavaConsole,但为什么要离开?多个 edt 是否同时处于活动状态?

0 投票
1 回答
650 浏览

java - 如何从 .dat 文件中读取并填充到 JTable 中?

我需要从scores.dat文件中读取数据并将其弹出到一个JTable,这里有更多信息:

  1. Scores.dat好像

    位置 =C:\Documents\scores.dat

  2. 第一行是列名。所以需要将列名弹出到表的第一行。

  3. Scores.dat是动态的,通过用户操作添加/删除行。

  4. 另外,我需要表格下方的“Top Scorer”按钮,单击该按钮时会突出显示得分最高的行。

这是我的代码: