加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JUNG上的Redraw Graph

发布时间:2020-12-15 08:40:34 所属栏目:Java 来源:网络整理
导读:我使用JUNG( Java通用网络/图形框架)使用以下代码构建图形: g = new SparseMultigraphBusStop,Travel();//add some Vertex and EdgesLayoutString,String layout1 = new CircleLayout(g);layout1.setSize(new Dimension(300,300)); // sets the initial siz
我使用JUNG( Java通用网络/图形框架)使用以下代码构建图形:

g = new SparseMultigraph<BusStop,Travel>();

//add some Vertex and Edges

Layout<String,String> layout1 = new CircleLayout(g);
layout1.setSize(new Dimension(300,300)); // sets the initial size of the layout space

VisualizationViewer vv = new VisualizationViewer(layout1);
vv.setPreferredSize(new Dimension(350,350)); //Sets the viewing area size

Transformer<BusStop,Paint> vertexPaint = new Transformer<BusStop,Paint>() {
    public Paint transform(BusStop b) {
        return Color.GREEN;
    }
};

Transformer<BusStop,Shape> vertexShape = new Transformer<BusStop,Shape>() {
    public Shape transform(BusStop b) {
        return new Rectangle(-20,-10,40,20);
    }
};

vv.getRenderContext().setVertexFillPaintTransformer(vertexPaint);
vv.getRenderContext().setVertexShapeTransformer(vertexShape);
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller());
vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);

GraphViewerForm = new edu.uci.ics.jung.visualization.GraphZoomScrollPane(vv);

现在,我想为图表添加更多顶点和边缘..我该怎么做?我应该运行哪些指令来重绘图形?谢谢!

解决方法

如果您要在用户交互后重新绘制图形,则必须将EditingModalGraphMouse添加到VisualizationViewer中

EditingModalGraphMouse gm = new EditingModalGraphMouse(vv.getRenderContext(),vertexFactory,edgeFactory); 
    vv.setGraphMouse(gm);

必须使用从中派生的vertexFactory和edgeFactory对象来提供构造函数

Factory<E> and Factory<V>

其工作是通过create()方法创建一个新的edge / vertices类实例

Factory <BusStop> vertexFactory = new Factory<BusStop>() {
            public BusStop create() {
                return new BusStop();
            }
        };

同样适用于edgeFactory

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读