2017-02-20 76 views
0

在採摘模式下,我想限制用戶在定義的佈局邊界之外拖動頂點。我已經將ISOMLayout,VisualizationModel和VisualizationViewer設置爲相同的大小。但是,如果我縮小(我使用CrossoverScalingControl),我可以在佈局/ vv的邊界之外拖動頂點。這會導致我的GraphZoomScrollPane的滾動條無法按預期工作:可能會有頂點漂浮在那裏,您無法滾動到,並且必須縮小才能看到它們。Jung:防止用戶移動可視化尺寸以外​​的頂點?

當然有辦法將用戶鎖定到某個邊界?

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); 

回答

0

如果你想設置一個邊界之外,你不能手動移動一個頂點,你可以做,在你的代碼(具體而言,在迴應你拖動所選頂點的部分,你可以指定限制你可以拖多個頂點的距離)。 JUNG的責任不在於阻止您將頂點位置設置爲Layout不使用的位置;就JUNG而言,如果你願意,你可以這樣做。 :)