2011-01-26 59 views
1

如何添加q菜單欄來更改Jung圖形的佈局(即:StaticLayout,SpringLayout等)?如何使用jung添加菜單以更改圖形佈局


逸岸這是我已經有:

JFrame frame = new JFrame("JUNG2 based GraphVisualization Tool"); 
     // Create a graph 
     SparseMultigraph<MyNode, MyEdge> graph = new SparseMultigraph<MyNode, MyEdge>(); 
     // We want to give the Nodes a point where to be (for later use) 
     //Map<MyNode, Point2D> vertexLocations = new HashMap<MyNode, Point2D>(); 
     // Also we need a Layout 
     Layout<MyNode, MyEdge> layout = new StaticLayout(graph); 
     layout.setSize(new Dimension(600, 600)); 
     // VisualizationViewer to Visualize our nodes and edges 
     VisualizationViewer<MyNode, MyEdge> vv = new VisualizationViewer<MyNode, MyEdge>(layout); 
     vv.setPreferredSize(new Dimension(650, 650)); 
     // To show the vertex and EdgeLabels 
     vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); 
     vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); 
     // Our mouse should be usable in different modes 
     EditingModalGraphMouse mouse = new EditingModalGraphMouse(vv.getRenderContext(), MyNodeFactory.getInstance(), MyEdgeFactory.getInstance()); 
     // Default values for new edges 
     MyEdgeFactory.setDefaultCapacity(100.0); 
     MyEdgeFactory.setDefaultWeight(5.0); 

     // Popupmenu 
     PopupNodeEdgeMenuMousePlugin nodeEdgePlugin = new PopupNodeEdgeMenuMousePlugin(); 
     JPopupMenu nodeMenu = new MyMouseMenus.NodeMenu(); 
     JPopupMenu edgeMenu = new MyMouseMenus.EdgeMenu(frame); 
     nodeEdgePlugin.setNodePopup(nodeMenu); 
     nodeEdgePlugin.setEdgePopup(edgeMenu); 
     // The already existing popup editing plugin has to be removed 
     mouse.remove(mouse.getPopupEditingPlugin()); 
     // And the new one has to be added 
     mouse.add(nodeEdgePlugin); 
     // set up the new mouse for the VisualizationViewer 
     vv.setGraphMouse(mouse); 

     // A JFrame to show all the stuff 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setContentPane(vv); 

     // To change the mouse modes, the tutorial shows a menuBar. Think it would be nice to have a toolbar here! 
     JMenuBar menuBar = new JMenuBar(); 
     JMenu modeMenu = mouse.getModeMenu(); 
     modeMenu.setText("Mouse Mode"); 
     modeMenu.setIcon(null); 
     modeMenu.setPreferredSize(new Dimension(80,20)); 
     menuBar.add(modeMenu); 
     frame.setJMenuBar(menuBar); 
     mouse.setMode(ModalGraphMouse.Mode.EDITING); 
     frame.pack(); 
     frame.setVisible(true); 

對不起,我是新來的Java,所以如果你認爲我怎麼根據我code.Thanks做這將是巨大

回答

0

事實上,你有榮格圖並沒有真正改變你需要做的事情。 1.創建一個JMenuBar並將其附加到需要菜單的JFrame上。 2.添加綁定了Action或ActionListeners的JMenuItems。 3.在GUI中創建一個或多個方法,使用Graph更改容器的佈局。 (可能需要添加/刪除組件,或者可能只是完全重建GUI的那部分)。 4.讓ActionListener調用適當的方法。