如何在JavaFX GUI组件内显示使用GraphStream生成的图形?

3

我一直在尝试在使用JavaFX制作的GUI中显示由GraphStream生成的图形。目前为止,我的成果如下:

Graph graphInit = new Graph(); //class that handles graph population
SingleGraph graph = new SingleGraph("Graph"); //GraphStream Class
SwingNode graphViewer = new SwingNode(); //JavaFX Component to display Swing elements
graph = graphInit.genGraph(graph);
Viewer viewer = new Viewer(graph,    Viewer.ThreadingModel.GRAPH_IN_ANOTHER_THREAD);
View view = viewer.addDefaultView(false);   // false indicates "no JFrame".
graphViewer.setContent((JComponent) view);
graphHook.getChildren().add(graphViewer);

graphViewer是一个SwingNode组件。

我认为GraphStream目前还不支持JavaFX,但我不确定。此外,我找到了gs-fx,但我不知道如何使用它。

任何帮助将不胜感激。如果有其他类似于GraphStream的库可以生成图形并在GUI中显示,那也可以。

1个回答

0
public void imagesie(Graph g){
     FileSinkImages pic = new FileSinkImages(OutputType.PNG, Resolutions.HD1080);
     g.display();

     pic.setLayoutPolicy(LayoutPolicy.COMPUTED_FULLY_AT_NEW_IMAGE);

     try {
        pic.setAutofit(true);
        pic.writeAll(g, "sample.png");
        File file = new File("sample.png");
        Image image = new Image(file.toURI().toString());
        imageview.setImage(image);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        //e.printStackTrace();
    }
}

1
虽然这可能回答了问题,但最好加上一些描述说明如何使用这个答案来解决问题。请阅读《如何撰写良好的回答》以获取更多信息。How do I write a good answer - Roshana Pitigala

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接