0

我已经基于 Jung2 附带的示例构建了一个桌面应用程序,该示例在框架上显示图形。EditingModalGraphMouse该应用程序允许用户使用该类移动选定的节点。

然而,当用户从一个有很多节点的区域单击并拖动一个节点时,应用程序实际上选择了堆底部的节点(不可见),而不是选择顶部的节点(对用户可见)。

我正在尝试深入研究这些类以验证节点拾取实际完成的位置,但我有点困惑。我认为该操作发生在PickingGraphMousePlugin.mousePressed(...)方法pickSupport返回的对象为vv.getPickSupport().

我的问题是:当用户从一堆节点中挑选一个节点时,如何让我的应用程序将节点移到顶部?负责管理它的类是什么?

我正在使用 Jung 2.0.1 版。

4

1 回答 1

1

要回答我自己的问题,只需使用ShapePickSupport.Style.HIGHEST, 如下代码所示(为清楚起见,更改了泛型参数):

VisualizationViewer<V, E> vv = new VisualizationViewer<V, E>(visualizationModel, preferredSize);
...
ShapePickSupport pickSupport = (ShapePickSupport) vv.getPickSupport();
pickSupport.setStyle(ShapePickSupport.Style.HIGHEST);

此外,这里是与此事相关的有用资源:

于 2014-07-01T13:48:27.860 回答