问题标签 [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.
swing - 更新 jTextArea 的问题
我正在编写一个 RMI 聊天程序。在我的程序中,我能够接收和发送消息,但我无法在 TextArea 中显示它。我不确定是什么错误。我也尝试使用事件调度方法。它没有帮助。
请帮忙...
java - 如何检索必须在另一个线程上计算的值
在很多情况下,线程 A 需要一个必须在线程 B 上计算的值。(最常见的是,B == EDT。)考虑这个例子:
当然,这不会编译,因为匿名内部类不允许写入host
. 让它工作的最简单、最干净的方法是什么?我在下面列出了我所知道的方式。
java - 在 EDT 中只运行一次代码的正确方法是什么?
我有一个使用 Java 线程不断执行某些操作的 Swing 应用程序。此操作的结果会更新 UI 中图形的内容:
我遇到的问题是 EDT 在其他操作中臃肿。在这种情况下,ExampleThread
可以注册Runnable
更新图形的各种实例。对于我的应用程序,这将是浪费时间,因为图表会在显示结果之前多次更新。我想要的是//update a graph
每个 EDT 周期最多运行一次代码。
我的问题是:确保 aRunnable
只运行一次的正确方法是什么?
java - 为什么即使在使用 SwingUtilities.invokeLater 后我的 GUI 仍然挂起?
我有这个ActionListener
在 EDT 中被调用。我的 plot() 函数计算量很大,很容易需要五秒钟。它使 GUI 按预期挂起。我添加了SwingUtilities.invokeLater
代码,它仍然挂起。既然我正在为我的起伏计算生成一个单独的线程,那么 GUI 不应该响应吗?
java - 如何捕获事件调度线程 (EDT) 异常?
我正在使用一个名为MyExceptionHandler
实现的类Thread.UncaughtExceptionHandler
来处理我的项目中的正常异常。
据我了解,此类无法捕获 EDT 异常,因此我尝试在main()
方法中使用它来处理 EDT 异常:
但直到现在它还没有工作。例如,在初始化 JFrame 时,我从构造函数中的捆绑文件中加载其标签,如下所示:
我从捆绑文件中删除了密钥MyJFrame.title
以测试异常处理程序,但它不起作用!异常通常打印在日志中。
我在这里做错了吗?
swing - 测量事件调度线程的“忙”
我想测量我的事件调度线程的“忙碌”。一种可能的想法是设置一个后台线程,该线程执行以下操作:
这个想法是测量从将事件发送到 EDT 到它被分派所需的时间。这将大致了解 UI 的响应性。
这有道理吗?有没有更标准的方法来做类似的事情?
java - Java:使用 SwingUtilities.invokeLater() 进行调试
我SwingUtilities.invokeLater()
经常使用。但是,这样做会使在某些情况下难以调试:您看不到调用 的代码的堆栈跟踪SwingUtilities.invokeLater()
,因为该代码已经结束了其执行。
是否有关于在调用时如何设置某种上下文(仅用于调试目的)的建议SwingUtilities.invokeLater()
,以便您找出导致相关 UI 事件的原因?
java - 如何在非事件调度线程中提示确认对话框
我有以下fun
将由非事件调度线程执行。在线程的中间,我想要一个
- 弹出一个确认框。线程暂停其执行。
- 用户做出选择。
- 线程将获得选择并继续执行。
但是,我发现以线程安全的方式做到这一点并不容易,因为对话框应该由事件调度线程显示。我试试
当然,这不会像choice
最终一样工作,我无法将对话框的返回值分配给它。
实现上述三个目标的正确方法是什么?
java - 如何停止 Swing EDT
典型的 Swing 应用程序在开始时启动 EDT,当最后一个窗口关闭时,应用程序基本上以 System.exit 隐式或显式停止。
但我的小应用程序实际上是一个框架插件,它对 Swing 一无所知。我的插件在调用时会显示一个对话框,以便从用户那里获得一些输入并在之后退出,但框架将/必须继续运行。所以我不能打电话System.exit
。
但是,如果我不这样做,EDT 将继续运行,一旦框架完成,EDT 仍将运行并运行并运行......
所以我想在不杀死应用程序的情况下杀死 EDT。我怎么做?
java - 同步呈现 JFrame
我有这个主要的 JFrame(称之为 DrinkChooser),它显示了另一个复杂的确认 JFrame(称之为 ConfirmWin)。
ConfirmWin 只有两个 JButton,确认和取消。
我想做这个:
(在 DrinkChooser 中,假设 DrinksChoosen 是一个 Drink[])
我想实现一个尽可能接近“JOptionPane 效果”的效果,即原来的 DrinkChooser 被挂起,ConfirmWin 返回用户的选择。
谢谢。