JTable运行的时候抛出NullPointerException的问题

在一个需要动态更新JTable的程序中,为了实现动态刷修数据。在主线程之外开了个新线程来进行算法的执行还有数值计算,然后最后调用

jTable.updateUi();

的方法。

然后图形界面上是一点问题都没有的,但有次突然发现,某次运行的时候,控制台爆了个空指针的异常:

 

无语的是,这个异常一来没有指示是哪个位置有问题……而来是不一定会出现……三来是对界面的显示似乎完全没影响。

显然这就是和线程有关的问题。

然后查了下资料,应该是jTable.updateUi()方法的问题。  这个方法可能影响到了Swing原来的线程机制。因为Swing是有自己的一套线程机制的,有三个线程,具体的就不在这里详细说明了。

那么怎么解决呢?用了官方建议的方法:

SwingUtilities.invokeLater(new Runnable() {
  @Override
    public void run() {
    // TODO Auto-generated method stub
      jTableRunResult.updateUI();   
    }
});

问题解决,那个异常再也没有抛出了。

原文地址:https://www.cnblogs.com/wangshen31/p/10119523.html