1

基本上,我有一个类 GraphData.java,它包含带有构造函数的静态类,用于使用 JUNG 程序在我的 Java 中创建顶点和边。我拥有的顶点类中的属性之一是私有 int 数据类型。根据此数据类型(1、2 或 3),节点将显示为圆形、正方形或三角形。当我在主类中手动创建节点并对数据类型进行硬核时,我可以做到这一点。我正在寻找更动态的解决方案。

我想要做的是说常规左键单击会将 dataType 设置为 1 从而绘制一个圆圈,但是如果我按住 shift 并左键单击它会将 dataType 设置为 2 从而绘制一个正方形并 ctrl + 单击一个三角形。有谁知道如何做到这一点?提前致谢。

这是我目前使用的鼠标:

EditingModalGraphMouse gm = new EditingModalGraphMouse(vv.getRenderContext(), 
GraphData.MyVertexFactory.getInstance(),
GraphData.MyEdgeFactory.getInstance());
4

1 回答 1

1

当你可以改变你的形状时,你必须使用 Transformer,例如扩展 EllipseVertexShapeTransformer 并实现方法 transform。然后,将此 Transformer 添加到您的 VisualizationViewer。此外,查看 JUNG 演示的源代码 - 它涵盖了大多数情况。

于 2011-05-10T09:12:17.313 回答