0

在拾取模式下,我想限制用户将顶点拖动到定义的布局范围之外。我已将 ISOMLayout、VisualizationModel 和 VisualizationViewer 设置为相同大小。但是,如果我缩小(我正在使用 CrossoverScalingControl),我可以将顶点拖动到布局/vv 的边界之外。这导致我的 GraphZoomScrollPane 的滚动条无法按预期工作:可能有一些顶点漂浮在外面,您无法滚动到这些顶点,您必须缩小才能看到它们。

肯定有办法将用户锁定在某个边界内吗?

    Dimension preferredDimension = new Dimension(1200, 800);

    Layout<CNode,CEdge> layout = new ISOMLayout<>(graph);
    layout.setSize(preferredDimension);

    VisualizationModel<CNode, CEdge> visualizationModel = new DefaultVisualizationModel<>(layout, preferredDimension);

    vv = new VisualizationViewer<>(visualizationModel, preferredDimension);
4

1 回答 1

0

如果要设置无法手动移动顶点的边界,可以在代码中执行此操作(特别是在响应您拖动选定顶点的部分中;您可以在此处指定距离的限制可以拖动一个顶点)。阻止您将顶点位置设置为 Layout 不会使用的东西不是 JUNG 的责任;就 JUNG 而言,如果你愿意,你可以这样做。:)

于 2017-02-21T03:03:25.877 回答