JUNG 动态改变布局

JUNG change Layout dynamically

我使用 JUNG 创建了一个图形,我想添加一个组合框,让用户可以更改使用的布局(圆形、KK、FR 等)

但我做不到。

这就是我可视化图表的方式:

// The Layout<V, E> is parameterized by the vertex and edge types
        this.layout = new CircleLayout<Ressource,Float>(this.graph);

        layout.setSize(new Dimension(500, 500)); // sets the initial size of the
                                                    // layout space
        // The BasicVisualizationServer<V,E> is parameterized by the vertex and
        // edge types

        this.vv = new BasicVisualizationServer<Ressource, Float>(layout);
        vv.setPreferredSize(new Dimension(550, 550)); // Sets the viewing area
                                                        // size

        // Adjust the edges thikness
        Transformer<Float, Stroke> edgeStroke = new Transformer<Float, Stroke>() {
            @Override
            public Stroke transform(Float arg0) {
                return new BasicStroke(arg0);
            }
        };

        vv.getRenderContext().setEdgeStrokeTransformer(edgeStroke);

        // Show vertex and edge labels
        vv.getRenderContext().setVertexLabelTransformer(
                new Transformer<Ressource, String>() {
                    public String transform(Ressource r) {
                        return (r.nom);
                    }
                });

        vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());

我试图创建一个全新的 BasicVisualizationServer 对象,每次都有不同的布局,但它没有用,它坚持第一个布局(在我的例子中是圆形)。

更改布局的最佳方法是什么?

谢谢大家!

此演示的源文件(在您的发行版中)演示了如何操作:http://jung.sourceforge.net/doc/api/edu/uci/ics/jung/samples/ShowLayouts.html