0
我有我在其中顯示JTree的Jframe。由於我有大量的節點被添加,我所做的是創建4個線程,繼續添加節點到樹。Swing UI刷新:後臺線程打印異常
使新添加的節點在UI上可見。我每10秒使用一次重新加載幀,
SwingUtilities.updateComponentTreeUI(frame);
我的幀被重新加載並且新添加的節點現在可見。但是有後臺線程在我的控制檯上打印異常。雖然它不妨礙我的UI輸出。但是,我可以知道原因,以下例外情況的原因以及如何解決此問題
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicScrollBarUI.layoutHScrollbar(BasicScrollBarUI.java:731)
at javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:833)
at java.awt.Container.layout(Container.java:1421)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicScrollPaneUI.paint(BasicScrollPaneUI.java:90)
at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143)
at javax.swing.JComponent.paintComponent(JComponent.java:752)
at javax.swing.JComponent.paint(JComponent.java:1029)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.plaf.basic.BasicScrollBarUI.layoutVScrollbar(BasicScrollBarUI.java:638)
at javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:829)
at java.awt.Container.layout(Container.java:1421)
at java.awt.Container.doLayout(Container.java:1410)
at java.awt.Container.validateTree(Container.java:1507)
at java.awt.Container.validateTree(Container.java:1513)
另外,異常堆棧跟蹤更改如上所述。我無法弄清楚什麼是可能的原因。我還同步了代碼,以便在刷新幀時不添加新節點。但它沒有幫助。
請告訴我在這種情況下應該怎麼做。
謝謝
我試圖通過main()來執行它。另外,我嘗試使用SwingUtilities.invokeLater()。但異常似乎來了 –
謝謝!謝謝!!爲評論。它實際上幫助我解決了我的問題。 –
SwingUtilities.invokeLater(新的Runnable(){ \t \t \t \t \t公共無效的run(){ \t \t \t \t \t \t SwingUtilities.updateComponentTreeUI(幀); \t \t \t \t \t \t \t \t \t \t \t }} \t \t \t \t); –