Netbeans GUI和处理“主要”内部的线程

时间:2015-05-16 20:33:26

标签: java multithreading swing netbeans

我正在使用 Netbeans IDE制作GUI。关键是当我将 JFrame 框架添加到我的项目包时:

Creating new Jframe

它将框架的每个变量(button,textArea,.. etc)声明为私有,并且无法更改它。当我尝试在run()方法内的main方法中创建使用这些变量的线程时出现问题。

  

注意:我尝试创建单独的类扩展Thread,我不能在main中调用它,除非我将其声明为static,然后同样的问题再次出现。

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

1 个答案:

答案 0 :(得分:4)

不要试图这样做。 UI元素应从事件调度线程以外的其他线程访问。您将找到有关Oracle Java教程Concurrency in Swing的参考资料。提取物(强调我的):

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

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

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