JavaFX中的线程问题

时间:2014-04-01 13:29:09

标签: java multithreading swing javafx

我正在运行一个JavaFX应用程序,我在其中创建了一个SwingNode,以便加载我使用Jung可视化创建的图形。我将GraphZoomScrollPane放入SwingNode,然后将此SwingNode加载到FlowPane中。

这确实有效,但是在它出现在页面上之前有时会有很长的延迟,并且它有时会影响其他内容加载(即其他内容将变黑并暂停一段时间然后重新加载)。有时我得到一个线程异常,它表明它没有在FX应用程序线程上运行,但是当我清理项目时,它就消失了。

下面是我创建SwingNode并将其放在FlowPane中的代码。

 final SwingNode swingNode = new SwingNode();
    createAndSetSwingContent(swingNode, test);
    graphPane.getChildren().add(swingNode);

private void createAndSetSwingContent(final SwingNode swingNode, final ArrayList<String> wordList) {
         SwingUtilities.invokeLater(new Runnable() {
             @Override
             public void run() {
                 try {
                     swingNode.setContent(new WordNetGraphs().WordNetGroupGraphs(wordList));

                 } catch (JWNLException ex) {
                     Logger.getLogger(WordNetPairPageController.class.getName()).log(Level.SEVERE, null, ex);
                 }
             }
         });
     }

如果有人知道更好的方法,我会非常感激。

0 个答案:

没有答案