gpt4 book ai didi

java - 如何使用 jung 添加菜单来更改图形布局

转载 作者:行者123 更新时间:2023-12-01 05:50:39 25 4
gpt4 key购买 nike

如何添加 q 菜单栏来更改 Jung 图的布局(即:StaticLayout、SpringLayout 等)?

<小时/>

事实上,这是我已经拥有的:

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 新手,所以如果您建议我根据我的代码做什么,那就太好了。谢谢

最佳答案

事实上,你有一个荣格图并没有真正改变你需要做的事情。 1. 创建一个 JMenuBar 并将其附加到您需要在其上添加菜单的 JFrame。 2. 添加绑定(bind)有 Actions 或 ActionListeners 的 JMenuItems。 3. 在 GUI 中创建一个或多个方法来更改带有图形的容器的布局。 (可能需要添加/删除组件,或者可能只是完全重建 GUI 的该部分)。 4. 让 ActionListener 调用适当的方法。

关于java - 如何使用 jung 添加菜单来更改图形布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4803650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com