2011-05-10 79 views
1

基本上我有一個類GraphData.java,它包含帶有構造函數的靜態類,用於使用JUNG程序在Java中創建頂點和邊。我擁有的頂點類中的一個屬性是private int dataType。根據此數據類型(1,2或3),節點將顯示爲圓形,正方形或三角形。當我在我的主類中手動創建節點並強制dataType時,我可以這樣做。我正在尋找更動態的解決方案。用JUNG創建「不同」頂點

我想要做的是說常規的左鍵單擊將數據類型設置爲1,從而畫一個圓,但如果我按住shift並左鍵單擊它將設置dataType爲2,從而繪製一個正方形並按住Ctrl +單擊三角形。有誰知道如何做到這一點?提前致謝。

這裏是我目前使用的鼠標:

EditingModalGraphMouse gm = new EditingModalGraphMouse(vv.getRenderContext(), 
GraphData.MyVertexFactory.getInstance(), 
GraphData.MyEdgeFactory.getInstance()); 
+0

存在以不同方式解釋不同類型鼠標事件的現有代碼(請參閱圖形鼠標插件)。你應該能夠鉤住這個。 – 2011-05-10 17:31:10

回答

1

你必須使用變壓器,例如當你可以改變你的形狀時,擴展EllipseVertexShapeTransformer並實現方法轉換。然後,將此Transformer添加到VisualizationViewer。此外,檢查JUNG演示的源代碼 - 它涵蓋了大部分情況。

+0

我以爲第一段明確表示我可以改變形狀。我有一個擴展的變壓器,並附上它,它的工作原理。我想要做的是根據它是一個正常的點擊,移動或Ctrl點擊來設置頂點屬性的值。 – fxtdr 2011-05-10 10:37:41

+0

Jung demos的代碼的鏈接是什麼? – CodeKingPlusPlus 2012-10-18 03:07:59