问题标签 [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.
java - 从 JPanel 中动态删除组件
这是解释问题的可运行代码 -
我可以删除 s1 和 s2 但不能删除 s3。
这似乎与 MigLayout 无关(我碰巧正在使用它),因为我也看到默认布局的相同行为。
java - 需要刷新 Java EDT(事件调度队列)
我有一个 Java 应用程序,其中许多线程正在快速写入 StyledTextBox。在某个时刻,所有线程都被终止。但是,TextBox 继续接收文本可能是因为调度队列有点备份。是否有可能以某种方式强制刷新 EDT,以便在线程终止时立即结束对 TextBox 的更新?
谢谢你,吉姆
java - 为什么我在线程“AWT-EventQueue-0”java.lang.ArrayIndexOutOfBoundsException: 2 中出现异常?
每次尝试更新 JTable 中的数据时都会出现此错误:
数据似乎更新得很好,但是出了点问题,它甚至没有引用我的任何代码,这让我很困扰。经过一段时间的调试,我确定以下代码行导致了问题:
当我单击一个按钮以过滤列表时,该线程被创建并启动,然后返回到数据库以获取更多可能超出已获取数据的数据。我计划稍后确定是否需要新的提取,并且仅在这种情况下执行上述操作,否则仅过滤已提取的结果。
java - 与应用程序代码同时工作的 Java 进度条
我是java初学者。所以请让我知道如何同时运行进度条和我的应用程序代码。换句话说,只要我的应用程序代码正在做一些处理,我想让我的进度条增加。请详细说明它与代码。我认为我必须同时添加两个线程。一个线程更新进度条线程但我不确定它是否正确。我已经编写了这段代码来增加进度条(硬编码)
java - 焦点丢失后推迟事件队列
我有JTable
一个自定义单元格编辑器。编辑器实现FocusListener
,因此如果用户单击远离单元格,我可以检查单元格的内容是否有效。
我想使用JOptionPane
inside focusLost
(in the EventDispatchThread
)来允许用户选择是恢复到旧值还是接受调整后的值。
这就是问题所在;如果用户正在编辑一个单元格,然后单击远离表格的按钮,则该按钮在返回之前actionlisteners
会收到警报。 JOptionPane
这就是我想要发生的事情:
- 用户编辑单元格
- 用户点击按钮
- 单元格检测到焦点丢失
- 显示 JOptionPane 并且用户选择操作
- JOptionPane 关闭并设置单元格的值
- Button 的 actionListeners 被调用
相反,这种情况正在发生:
- 用户编辑单元格
- 用户点击按钮
- 单元格检测到焦点丢失
- 显示 JOptionPane 并且用户选择操作
- Button 的 actionListeners 被调用
- JOptionPane 关闭并设置单元格的值
是否可以将按钮的操作事件推迟到JOptionPane
关闭之后?
从其他线程中,我读到它JDialog
确实可以确保事件调度继续进行,因此 Dialog 本身可以处理事件。
java - EDT 和其他 Thread 关系关于 repaint() 方法 java
如果 GUI 确定由 EDT 构建,是否对其他一些线程调用重绘调用在 EDT 上调用绘画?如果没有,我如何确保它确实有效,效率越高越好。
java - 从控制台获取输入后不出现 Swing 窗口
我有一个简单的摆动窗口来加载文件。
这出现在类analyzedLoad
中,在一个函数中analyzedloads()
我在没有用户输入的情况下应用该功能,一切都很好。但是在我从用户那里得到输入的地方,以这种方式:
窗口不出现,进程继续运行,不做任何事情。
谢谢。
java - 处理时更新 JProgressBar
我知道这个主题已经在很多问题上看到并得到了回答,但我仍然无法通过它。
我只想在提取大型 xml 文件的一些内容时更新进度条。我认为在不同的线程中进行耗时的循环就足够了,但是?.. 我设法得到的只是 progressBar 要么根本不显示,要么在最后更新,就在它关闭之前。
在应用程序启动附近的某个地方实例化,我有:
在使用 JProgressBar 显示和更新 JDialog 时:
所以我有这个myXMLParser:
我已经看到很多使用事件SwingWorker
和使用PropertyChange
事件来更新进度条的事情,但是示例始终是一体的,处理和进度条在同一个类中,以及类中的类,自从我开始使用 Java 以来,我无法将其转化为我的情况。
任何帮助?..任何(不太明显)的建议?
编辑:所以多亏了 btantlinger,它的工作原理是这样的:
java - Java JLabel 自动更改字体
我在一个非常大的 JavaEE 应用程序中有许多不同的组件。因此,调试很痛苦,遗憾的是我无法提供准确描述我遇到的问题的 SSCCE。
简而言之,不知何故,我的字体会自行改变,例如JLabels
和JTabbedPanes
. 无需触摸它们,它们就被重新粉刷为粗体、斜体、大小显着变化或它们的任何组合。
简单的问题:为什么?
如果我单步执行 Eclipse 调试器,则永远不会进行任何更改。所以时间在某种程度上是一个因素。
我仍然是一个 Java 蚱蜢(一个人工作),并且没有以 EDT 是神圣对象的方式构建这个程序。我担心因为我可能不会repaint()
在 EDT 上进行所有调用,所以 JTabbedPane、JLabel 和其他字体属性正在被重置和重新绘制。
编辑:
忘了说我受限于 Java 1.5。
我想我已经把它缩小到在 JLabels 和 JTabbedPane 选项卡标题中使用 HTML 的问题......但过去我不知道。关于 JTabbedPane,它使用正确的Font
/FontMetrics
对象进入绘图方法,但无论出于何种原因,它很少(有时更频繁;仍然没有弄清楚时间触发器)切换什么字体、样式,甚至它绘制文本的大小。
java - 将变量从一个类传递到另一个类
大家好,我是堆栈,所以如果有人可以以任何方式提供帮助,那就太好了。我正在使用eclipse,程序正在编译和运行。我有 3 个类,它们在同一个包中。因此,我想将 ThreadQuizCountdown 类中 i 的值传递给其他类 PanelQuizCountdown int 名为 timeField 的 JTextField 目前 i 显示在控制台中我一直在尝试这样做,但如果有人能帮忙,我就做不到。这是代码