gpt4 book ai didi

java - 处理事件派发线程

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:36:39 25 4
gpt4 key购买 nike

我有一个关于“事件调度线程”的问题。我有一个也是 JFrame 的主类。它初始化代码中的其余组件,其中一些不涉及 Swing,而另一些则涉及。像这样使用 EDT 简单地初始化 Main 类就足够了吗?...

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
new Main();
}
});
}

这样一切都将在 Event Dispatcher 线程上运行。

最佳答案

这通常就足够了,直到您开始使用后台线程进行计算、数据采集等。然后您需要开始小心验证您在更改 Swing 组件或其模型之前是否处于 EDT 状态。

您可以测试您是否在 EDT 上执行:

    if (SwingUtilities.isEventDispatchThread()) {
// Yes, manipulate swing components
} else {
// No, use invokeLater() to schedule work on the EDT
}

另请参阅 SwingWorker类,了解有关如何将工作移交给后台线程并在 EDT 上处理结果的详细信息

关于java - 处理事件派发线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com