gpt4 book ai didi

java - Netbeans GUI 和处理 "main"内的线程

转载 作者:行者123 更新时间:2023-12-01 18:14:53 26 4
gpt4 key购买 nike

我正在使用 Netbeans IDE 来制作 GUI。重点是,当我将 JFrame 框架添加到我的项目包中时:

Creating new Jframe

它将框架的每个变量(按钮、文本区域等)声明为私有(private)且无法更改。当我尝试在 main 方法内的 run() 方法中创建使用这些变量的线程时,问题就出现了。

note: I've tried to create separate class extends Thread, I can't call it in the main unless I declare it as static, then same problem rises again.

如何在 main 中创建使用这些变量的线程(即将文本附加到文本区域)?

最佳答案

不要尝试这样做。 UI 元素不能从除事件调度线程之外的其他线程访问。您可以在 Oracle Java 教程 Concurrency in Swing 上找到引用资料。摘录(强调我的):

Swing 程序员处理以下类型的线程:

  • 初始线程,执行初始应用程序代码的线程。
  • 事件调度线程,所有事件处理代码都在其中执行。 大多数与 Swing 框架交互的代码也必须在此线程上执行。
  • 工作线程,也称为后台线程,在其中执行耗时的后台任务。

一些 Swing 组件方法在 API 规范中被标记为“线程安全”;这些可以从任何线程安全地调用。 所有其他 Swing 组件方法都必须从事件分派(dispatch)线程调用​​。忽略此规则的程序可能在大多数情况下都能正常运行,但会出现难以重现的不可预测的错误。

关于java - Netbeans GUI 和处理 "main"内的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30280467/

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