Sur*_*dhi 5 java multithreading nullpointerexception
在我的主应用程序类中,我有一个JTextArea的对象(比如txtArea).我在main_application程序中创建了另外两个线程.我创建的两个线程是用于在串行端口中读写.现在我想将串口读缓冲区数据放入JTextArea对象.所以我需要将在main_application中创建的JTextArea对象传递给read-thread,以便read-thread可以将读取输出放到JTextArea中.
但是这样做后我面临空指针访问问题.当我检查main_application中的JTextArea对象时它不是null但是在传递给线程后我检查了它的null.我不知道它是怎么发生的......如果有任何极客可以帮助我,我会很高兴....
谢谢,Surjya
在线程之间共享对象可能会变得非常混乱,您可能需要阅读有关Actor 模型的不同方法。特别是在 GUI 领域,模型-视图-控制器方法代码可以提供帮助。
但回到问题上来,您可以通过将 JTextArea 设为静态变量并让所有不同的线程随意修改静态实例来快速破解它:
public static JTextArea TXTAREA
void main_application(){
//set up app
...
TXTAREA = new JTextArea()
...
}
Run Code Online (Sandbox Code Playgroud)
然后在串行读取线程中,设置 的文本TXTAREA。这个解决方案并不理想,我认为更好的方法是使用 MVC 方法并有一个控制器接受要放入文本区域的值。
| 归档时间: |
|
| 查看次数: |
2836 次 |
| 最近记录: |