以下代码正在进行中:
private final Controller controller = new Controller();
private final XSimpleList lists[] = new XSimpleList[2]; //extends JList (my framework)
我有一个扩展 JFrame 并实现 Runnable 的公共类 X。这个公共类 X 有一个定义的构造函数。构造函数的最后一行是:
(new Thread(new X())).start();
根据需要,我确实有一个public void run() {}
. 在这个 run() 方法中,我确实有一个
lists[0].FillUp(controller.getSomeData(), 2);
该线程被编程为在它从 udp 服务器接收到消息时执行上述行。所以...问题是执行给定行的时间(运行时)。它导致一个java.lang.NullPointerException
.
XSimpleList 代码段:
final JList hW;
final DefaultListModel dlm;
final JScrollPane lsp;
public final void FillUp(MyTypeRepository volume, int filter) {
dlm.clear();
//iterations
dlm.addElement(some_data);
//end iterations
}
我的问题是......我如何解决这个问题,以便list[0]在从启动的线程调用时不返回那个 NullPointer?
当(仅)从类 X 执行时,问题不存在。我认为在 2 个“管道”之间共享数据是一个问题,这意味着父实例(x 类)和子实例(线程 y)。
谢谢你!