我基于Jung2附带的示例构建了一个桌面应用程序,该示例在框架上显示图形。该应用程序允许用户使用EditingModalGraphMouse
类移动选定的节点。
但是,当用户点击并拖动一个节点从一个有很多节点的区域中移动时,应用程序实际上会选择堆栈底部的节点(这是不可见的)而不是选择一个在顶部(用户可以看到)。
我正在尝试挖掘类以验证节点拾取实际完成的位置,但我有点困惑。我认为操作在PickingGraphMousePlugin.mousePressed(...)
方法中使用pickSupport
返回的vv.getPickSupport()
对象进行。
我的问题是:当用户从一堆节点中选择一个节点时,如何让我的应用程序将节点移动到顶部?负责管理该节点的类是什么?
我正在使用Jung版本2.0.1。
答案 0 :(得分:1)
要回答我自己的问题,必须使用ShapePickSupport.Style.HIGHEST
,如下面的代码所示(为了清晰起见, generics 参数已更改):
VisualizationViewer<V, E> vv = new VisualizationViewer<V, E>(visualizationModel, preferredSize);
...
ShapePickSupport pickSupport = (ShapePickSupport) vv.getPickSupport();
pickSupport.setStyle(ShapePickSupport.Style.HIGHEST);
此外,这里有与此事有关的有用资源: