📄 hoofdscherm.java
字号:
package gui;
import javax.swing.*;
import java.awt.*;
import org.jgraph.graph.DefaultGraphModel;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.plaf.basic.BasicGraphUI.MouseHandler;
import java.net.URL;
import java.util.LinkedList;
import graph.GraphEventManager;
public class Hoofdscherm extends JFrame
{
private javax.swing.JSplitPane splitPane0, splitPane1, splitPane2;
private InfoJPanel infoJPanel;
private CommandJPanel commandJPanel;
private JScrollPane graphLayoutCache;
private JPanel contents;
private MyGraphListener myGraphListener;
private ButtonListener buttonListener;
private NetworkGraph networkGraph;
public Hoofdscherm()
{
super("Simulation of a P2P network");
networkGraph = new NetworkGraph(new DefaultGraphModel());
//setSizeable(), setBendable()
//networkGraph.setSizeable(false);
networkGraph.setBendable(false);
//System.out.println(networkGraph.getScale());
//networkGraph.setScale(networkGraph.getScale()*2);
//System.out.println(networkGraph.getScale());
setButtonListener(new ButtonListener());
MouseHandler mh = (MouseHandler)networkGraph.getMouseListeners()[0];
networkGraph.removeMouseListener(mh);
setMyGraphListener(new MyGraphListener(mh));
networkGraph.addMouseListener(getMyGraphListener());
//networkGraph.addMouseListener(mh);
networkGraph.addGraphSelectionListener(getMyGraphListener());
contents=new JPanel(new GridLayout());
setSize(1280,750);
contents.setOpaque(false);
setResizable(true);
commandJPanel=new CommandJPanel(getButtonListener());
infoJPanel=new InfoJPanel();
createMenuBar();
//createToolBar();
//$frameListener=new FrameListener();
//addWindowListener($frameListener);
splitPane0 = new javax.swing.JSplitPane(javax.swing.JSplitPane.VERTICAL_SPLIT);
splitPane1 = new javax.swing.JSplitPane(javax.swing.JSplitPane.HORIZONTAL_SPLIT);
splitPane2 = new javax.swing.JSplitPane(javax.swing.JSplitPane.VERTICAL_SPLIT);
splitPane0.setOneTouchExpandable(false);
splitPane1.setOneTouchExpandable(true);
splitPane2.setOneTouchExpandable(false);
splitPane2.setEnabled(false);
splitPane0.setEnabled(false);
splitPane0.setMinimumSize(new java.awt.Dimension(75, 75));
splitPane1.setMinimumSize(new java.awt.Dimension(200, 200));
splitPane2.setMinimumSize(new java.awt.Dimension(200, 200));
//JLabel label1 = new JLabel("info", JLabel.CENTER);
contents.add(splitPane0, splitPane0.getName());
splitPane2.setRightComponent(getInfoJPanel());
splitPane2.setLeftComponent(getCommandJPanel());
splitPane1.setLeftComponent(splitPane2);
graphLayoutCache = new JScrollPane(networkGraph);
splitPane1.setRightComponent(graphLayoutCache);
splitPane0.setRightComponent(splitPane1);
splitPane0.setLeftComponent(createToolBar());
splitPane0.setDividerSize(1);
splitPane2.setDividerSize(1);
//contents.add(createToolBar());
setContentPane(contents);
//createToolBar();
}
public void updateModel(DefaultGraphModel model)
{
networkGraph.setModel(model);
}
public void updateInfoJPanel(DefaultGraphCell dgc)
{
this.getInfoJPanel().updateInformation(dgc);
}
public NetworkGraph getNetworkGraph()
{
return networkGraph;
}
public ButtonListener getButtonListener()
{
return buttonListener;
}
public void setButtonListener(ButtonListener buttonListener)
{
this.buttonListener = buttonListener;
}
private void createMenuBar()
{
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
menuBar.setOpaque(true);
menuBar.setPreferredSize(new Dimension(200, 20));
menuBar.add(createFileMenu());
menuBar.add(createNodesMenu());
menuBar.add(createEdgesMenu());
menuBar.add(createAgentsMenu());
menuBar.add(createToolsMenu());
menuBar.add(createHelpMenu());
}
private JToolBar createToolBar()
{
JButton button = null;
JToolBar toolBar = new JToolBar("Still draggable");
toolBar.setFloatable(false);
toolBar.setRollover(true);
toolBar.setPreferredSize(new Dimension(20, 20));
getContentPane().add(toolBar, BorderLayout.PAGE_START);
//Look for the image.
String imgLocation;
ImageIcon icon;
Image image;
URL url;
// new random graph button
url = Hoofdscherm.class.getClassLoader().getResource("icons/new.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("New random networkgraph");
button.setToolTipText("New random networkgraph");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
url = Hoofdscherm.class.getClassLoader().getResource("icons/open.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Open existing networkgraph");
button.setToolTipText("Open existing networkgraph");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
url = Hoofdscherm.class.getClassLoader().getResource("icons/save.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Save current networkgraph");
button.setToolTipText("Save current networkgraph");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
toolBar.addSeparator();
url = Hoofdscherm.class.getClassLoader().getResource("icons/pointer.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Selection");
button.setToolTipText("Selection");
button.setIcon(icon);
button.addActionListener(getMyGraphListener());
toolBar.add(button);
toolBar.addSeparator();
url = Hoofdscherm.class.getClassLoader().getResource("icons/node_new.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("New node");
button.setToolTipText("New node");
button.setIcon(icon);
button.addActionListener(getMyGraphListener());
toolBar.add(button);
url = Hoofdscherm.class.getClassLoader().getResource("icons/node_remove.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Remove node");
button.setToolTipText("Remove node");
button.setIcon(icon);
button.addActionListener(getMyGraphListener());
toolBar.add(button);
toolBar.addSeparator();
url = Hoofdscherm.class.getClassLoader().getResource("icons/edge_new.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("New edge");
button.setToolTipText("New edge");
button.setIcon(icon);
button.addActionListener(getMyGraphListener());
toolBar.add(button);
url = Hoofdscherm.class.getClassLoader().getResource("icons/edge_remove.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Remove edge");
button.setToolTipText("Remove edge");
button.setIcon(icon);
button.addActionListener(getMyGraphListener());
toolBar.add(button);
toolBar.addSeparator();
url = Hoofdscherm.class.getClassLoader().getResource("icons/zoom_in.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Zoom in");
button.setToolTipText("Zoom in");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
url = Hoofdscherm.class.getClassLoader().getResource("icons/zoom_out.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Zoom out");
button.setToolTipText("Zoom out");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
toolBar.addSeparator();
url = Hoofdscherm.class.getClassLoader().getResource("icons/analyse.gif");
image = Toolkit.getDefaultToolkit().getImage(url);
icon = new ImageIcon(image, "alttext");
button = new JButton();
button.setActionCommand("Analyse requests");
button.setToolTipText("Analyse requests");
button.setIcon(icon);
button.addActionListener(buttonListener);
toolBar.add(button);
return toolBar;
}
private JMenu createFileMenu()
{
JMenuItem item;
JMenu optieMenu=new JMenu("File");
//item=new JMenuItem("New Graph");
//item.addActionListener(buttonListener);
//optieMenu.add(item);
item=new JMenuItem("New random networkgraph");
item.addActionListener(buttonListener);
item.setActionCommand("New random networkgraph");
optieMenu.add(item);
item=new JMenuItem("New networkgraph from graph");
item.addActionListener(buttonListener);
item.setActionCommand("New networkgraph from graph");
optieMenu.add(item);
optieMenu.addSeparator();
item=new JMenuItem("Open existing networkgraph");
item.addActionListener(buttonListener);
item.setActionCommand("Open existing networkgraph");
optieMenu.add(item);
item=new JMenuItem("Save current networkgraph");
item.addActionListener(buttonListener);
item.setActionCommand("Save current networkgraph");
optieMenu.add(item);
optieMenu.addSeparator();
item=new JMenuItem("Exit");
item.addActionListener(buttonListener);
item.setActionCommand("Exit");
optieMenu.add(item);
return optieMenu;
}
private JMenu createHelpMenu()
{
JMenuItem item;
JMenu helpMenu=new JMenu("Help");
item=new JMenuItem("Help");
item.addActionListener(buttonListener);
item.setActionCommand("Help");
helpMenu.add(item);
item=new JMenuItem("About");
item.addActionListener(buttonListener);
item.setActionCommand("About");
helpMenu.add(item);
return helpMenu;
}
private JMenu createNodesMenu()
{
JMenuItem item;
JMenu showMenu=new JMenu("Nodes");
JMenu submenu = new JMenu("Show (on top)");
item = new JMenuItem("Gradient");
item.addActionListener(buttonListener);
item.setActionCommand("Gradient");
submenu.add(item);
item = new JMenuItem("Pheromones");
item.addActionListener(buttonListener);
item.setActionCommand("Pheromones");
submenu.add(item);
showMenu.add(submenu);
submenu = new JMenu("Show resources");
item = new JMenuItem("All resources");
item.addActionListener(buttonListener);
item.setActionCommand("All resources");
submenu.add(item);
item = new JMenuItem("Select 1 resource");
item.addActionListener(buttonListener);
item.setActionCommand("Select 1 resource");
submenu.add(item);
showMenu.add(submenu);
showMenu.addSeparator();
item = new JMenuItem("Add random resources");
item.addActionListener(buttonListener);
item.setActionCommand("Add random resources");
showMenu.add(item);
showMenu.addSeparator();
item = new JMenuItem("Remove all gradient-fields");
item.addActionListener(buttonListener);
item.setActionCommand("Remove all gradient-fields");
showMenu.add(item);
item = new JMenuItem("Construct all gradient-fields");
item.addActionListener(buttonListener);
item.setActionCommand("Construct all gradient-fields");
showMenu.add(item);
showMenu.addSeparator();
submenu = new JMenu("Auto-generate search-request");
item = new JMenuItem("No requests");
item.addActionListener(buttonListener);
item.setActionCommand("No requests");
submenu.add(item);
item = new JMenuItem("Some requests");
item.addActionListener(buttonListener);
item.setActionCommand("Some requests");
submenu.add(item);
item = new JMenuItem("Many requests");
item.addActionListener(buttonListener);
item.setActionCommand("Many requests");
submenu.add(item);
showMenu.add(submenu);
return showMenu;
}
private JMenu createEdgesMenu()
{
JMenuItem item;
JMenu showMenu=new JMenu("Edges");
JMenu submenu = new JMenu("Show");
item = new JMenuItem("All");
item.addActionListener(buttonListener);
item.setActionCommand("All");
submenu.add(item);
item = new JMenuItem("Path to resource ...");
item.addActionListener(buttonListener);
item.setActionCommand("Path to resource ...");
submenu.add(item);
showMenu.add(submenu);
return showMenu;
}
private JMenu createAgentsMenu()
{
JMenuItem item;
JMenu agentsMenu=new JMenu("Agents");
LinkedList types = (LinkedList) GraphEventManager.getAgentLibrary().getAgentTypes();
for (int i=0; i<types.size(); i++)
{
System.out.println("Adding type " + types.get(i));
item=new JMenuItem((String)types.get(i));
item.addActionListener(buttonListener);
item.setActionCommand((String)types.get(i));
agentsMenu.add(item);
}
return agentsMenu;
}
private JMenu createToolsMenu()
{
JMenuItem item;
JMenu toolsMenu=new JMenu("Tools");
item=new JMenuItem("Apply layout-algorithm");
item.addActionListener(buttonListener);
item.setActionCommand("Apply layout-algorithm");
toolsMenu.add(item);
JMenu submenu = new JMenu("Resource-Library");
item = new JMenuItem("Add new resource");
item.addActionListener(buttonListener);
item.setActionCommand("Add new resource");
submenu.add(item);
toolsMenu.add(submenu);
return toolsMenu;
}
public CommandJPanel getCommandJPanel()
{
return commandJPanel;
}
public void setCommandJPanel(CommandJPanel commandJPanel)
{
this.commandJPanel = commandJPanel;
}
public InfoJPanel getInfoJPanel()
{
return infoJPanel;
}
public void setInfoJPanel(InfoJPanel infoJPanel)
{
this.infoJPanel = infoJPanel;
}
public MyGraphListener getMyGraphListener()
{
return myGraphListener;
}
public void setMyGraphListener(MyGraphListener myGraphListener)
{
this.myGraphListener = myGraphListener;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -