Java 如何配置VisualizationViewer,以便用户可以使用鼠标移动节点?
我使用Jung 2.0已经有一段时间了,但是我对软件包附带的各种演示中的所有配置代码有点困惑 有人能告诉我如何配置VisualizationViewer,以便我可以通过单击并拖动图形节点来移动它们吗 下面是我的代码。这是我学习过的各种演示的混合。但我只能用它平移和旋转图形Java 如何配置VisualizationViewer,以便用户可以使用鼠标移动节点?,java,jung,Java,Jung,我使用Jung 2.0已经有一段时间了,但是我对软件包附带的各种演示中的所有配置代码有点困惑 有人能告诉我如何配置VisualizationViewer,以便我可以通过单击并拖动图形节点来移动它们吗 下面是我的代码。这是我学习过的各种演示的混合。但我只能用它平移和旋转图形 public class GrafoParticipacaoSocietaria extends JFrame { Graph<VerticeParticipacaoSocietaria, Integer>
public class GrafoParticipacaoSocietaria extends JFrame {
Graph<VerticeParticipacaoSocietaria, Integer> graph;
VisualizationViewer<String, String> vv;
Layout<VerticeParticipacaoSocietaria, Integer> layout;
public GrafoParticipacaoSocietaria(Graph<VerticeParticipacaoSocietaria, Integer> grafoPart) {
super("Participação Societária");
graph = grafoPart;
layout = new ISOMLayout(graph);
final VisualizationModel visualizationModel = new DefaultVisualizationModel(layout);
vv = new VisualizationViewer(visualizationModel);
vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR);
vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<String>());
vv.setForeground(Color.blue);
getContentPane().add(vv);
// this class will provide both label drawing and vertex shapes
VertexLabelAsShapeRenderer<String, String> vlasr = new VertexLabelAsShapeRenderer<String, String>(
vv.getRenderContext());
vv.getRenderContext().setVertexShapeTransformer(vlasr);
vv.getRenderContext().setVertexLabelRenderer(new DefaultVertexLabelRenderer(Color.lightGray));
vv.getRenderContext().setEdgeDrawPaintTransformer(new ConstantTransformer(Color.lightGray));
vv.getRenderContext().setEdgeStrokeTransformer(new ConstantTransformer(new BasicStroke(1.0f)));
// customize the renderer
// vv.getRenderer().setVertexRenderer(new MyGradientVertexRenderer<String, String>(Color.cyan, Color.white, true));
vv.getRenderer().setVertexLabelRenderer(vlasr);
vv.setGraphMouse(new DefaultModalGraphMouse());
}
}
您可以在Jung网站上找到一个示例,使用编辑添加节点,然后切换到拾取以移动已添加的节点。sourcode可以从check-jung-samples-X.X.X.jar中找到,该类名为GraphEditorDemo
Jung网站的屏幕截图您可以在Jung网站上找到一个示例,使用编辑添加节点,然后切换到拾取以移动已添加的节点。sourcode可以从check-jung-samples-X.X.X.jar中找到,该类名为GraphEditorDemo Jung网站的屏幕截图多亏了,我找到了我想要的代码:
DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse();
graphMouse.setMode(ModalGraphMouse.Mode.PICKING);
vv.setGraphMouse(graphMouse);
该代码将ModalGraphMouse中的模式更改为拾取模式,允许用户选择和移动节点。多亏了,我找到了我要查找的代码:
DefaultModalGraphMouse graphMouse = new DefaultModalGraphMouse();
graphMouse.setMode(ModalGraphMouse.Mode.PICKING);
vv.setGraphMouse(graphMouse);
该代码将ModalGraphMouse中的模式更改为拾取模式,允许用户选择和移动节点。+1&接受帮助我找到问题的解决方案,请参阅。+1&接受帮助我找到问题的解决方案,请参阅。