在一個需要動態更新JTable的程序中,爲了實現動態刷修數據。在主線程之外開了個新線程來進行算法的執行還有數值計算,然後最後調用
jTable.updateUi();
的方法。
然後圖形界面上是一點問題都沒有的,但有次突然發現,某次運行的時候,控制檯爆了個空指針的異常。
原因:
Swing是有自己的一套線程機制的,有三個線程,具體的可以百度瞭解。
界面操作最好交給 Swing自己的線程處理:
那麼怎麼交給swing處理呢?
SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // TODO Auto-generated method stub jTableRunResult.updateUI(); } });
問題解決,那個異常再也沒有拋出了。