📄 mainmenu.java
字号:
// file: MainMenu.java
//
// import necessary java libraries
//
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.net.*;
import java.applet.*;
// class: MainMenu
//
// implement the menu driven system that drives the applet
//
// hierarchy: MainMenu
//
class MainMenu extends JPanel implements ActionListener, Constants {
// ---------------------------------------------------
//
// declare global variables
//
// ---------------------------------------------------
// creates a fram to manipulate the configuration options
//
public JFrame config = null;
// textfields and labels for the connector properties
//
public JLabel nameLabel = null;
public JTextField nameField = null;
// declare a reference to the DiGraph
//
public DiGraph digraph = null;
// menu that holds all functionality
//
public JMenu menu = null;
public JMenu subMenu = null;
public JMenu subSubMenu = null;
public JMenuBar menuBar = null;
public JMenuItem menuItem = null;
// declare a frame to display the help message
//
JFrame helpFrame = null;
// declare a text area to display documentation
//
public JTextArea textArea = null;
// declare a scrollable pane for the text area
//
public JScrollPane scrollPane = null;
// declare the layout manager
//
public GridBagLayout gridbag = new GridBagLayout();
// ---------------------------------------------------
//
// declare class constructors
//
// ---------------------------------------------------
// method: MainMenu
//
// arguments:
//
// returns : none
//
// constructor initializes objects and containers
//
MainMenu(DiGraph DiGraph) {
super();
// set the default layout
//
setLayout(gridbag);
// set the reference to vertex box
//
digraph = DiGraph;
// instantiate the frame
//
helpFrame = new JFrame("Help");
// instantiate the text area to display documentation
//
textArea = new JTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setEditable(false);
// instantiate the scrollable pane for the text area
//
scrollPane = new JScrollPane(textArea);
// set the scroll pane dismensions
//
scrollPane.setSize(new Dimension(HELP_WIDTH, HELP_HEIGHT));
scrollPane.setPreferredSize(new Dimension(HELP_WIDTH, HELP_HEIGHT));
scrollPane.setMinimumSize(new Dimension(HELP_WIDTH, HELP_HEIGHT));
scrollPane.setMaximumSize(new Dimension(HELP_WIDTH, HELP_HEIGHT));
// initialize the menu bar
//
menuBar = new JMenuBar();
// create the file menu
//
menu = new JMenu(fileStr);
menu.setFont(newFont);
menuBar.add(menu);
// add the menu items
//
menuItem = new JMenuItem(clearStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,
ActionEvent.ALT_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(clearStr);
menu.add(menuItem);
menuItem = new JMenuItem(openStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
ActionEvent.CTRL_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(openStr);
menu.add(menuItem);
menuItem = new JMenuItem(saveStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
ActionEvent.CTRL_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(saveStr);
menu.add(menuItem);
menuItem = new JMenuItem(saveAsStr);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(saveAsStr);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem(quitStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
ActionEvent.ALT_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(quitStr);
menu.add(menuItem);
// create the edit menu
//
menu = new JMenu(editStr);
menu.setFont(newFont);
menuBar.add(menu);
menuItem = new JMenuItem(cutStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
ActionEvent.CTRL_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(cutStr);
menu.add(menuItem);
menuItem = new JMenuItem(copyStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
ActionEvent.CTRL_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(copyStr);
menu.add(menuItem);
menuItem = new JMenuItem(pasteStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
ActionEvent.CTRL_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(pasteStr);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem(insArcStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,
ActionEvent.ALT_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(insArcStr);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem(delArcStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,
ActionEvent.ALT_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(delArcStr);
menu.add(menuItem);
menuItem = new JMenuItem(delBlkStr);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D,
ActionEvent.ALT_MASK));
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(delBlkStr);
menu.add(menuItem);
// create the algorithms menu
//
menu = new JMenu(compStr);
menu.setFont(newFont);
menuBar.add(menu);
menu.addSeparator();
String coeffLabel = null;
String connection = null;
String outputConfig = null;
String inputConfig = null;
int index = digraph.data.association.indexOf(TRANSFORM_TAG);
Vector algorithms = (Vector)digraph.data.values.elementAt(index);
for (int i=0; i < algorithms.size(); i++) {
String algo = (String)algorithms.elementAt(i);
if(algo.equals("AudioFrontEnd"))
{
inputConfig = "Input";
continue;
}
if(algo.equals("Output"))
{
outputConfig = algo;
break;
}
}
menuItem = new JMenuItem(inputConfig);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand("AudioFrontEnd");
menu.add(menuItem);
menuItem = new JMenuItem(outputConfig);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand("Output");
menu.add(menuItem);
menu.addSeparator();
for (int i=0; i < algorithms.size(); i++) {
String algo = (String)algorithms.elementAt(i);
if(algo.equals("AudioFrontEnd"))
{
continue;
}
if(algo.equals("Output"))
{
continue;
}
if(algo.equals("CoefficientLabel"))
{
coeffLabel = algo;
continue;
}
if(algo.equals("Connection"))
{
connection = algo;
continue;
}
menuItem = new JMenuItem(algo);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(algo);
menu.add(menuItem);
}
menu.addSeparator();
menuItem = new JMenuItem(coeffLabel);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(coeffLabel);
menu.add(menuItem);
menuItem = new JMenuItem(connection);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(connection);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem(contStr);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(contStr);
menu.add(menuItem);
// create the help menu
//
menu = new JMenu(helpStr);
menu.setFont(newFont);
menuBar.add(Box.createHorizontalGlue());
menuBar.add(menu);
menuItem = new JMenuItem(overviewStr);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(overviewStr);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem(tutorialStr);
menuItem.setFont(newFont);
menuItem.addActionListener(this);
menuItem.setActionCommand(tutorialStr);
menu.add(menuItem);
// set the dimensions of the menu
//
this.setSize(new Dimension(digraph.MAX_WIDTH, 30));
this.setMinimumSize(new Dimension(digraph.MAX_WIDTH, 30));
this.setMaximumSize(new Dimension(digraph.MAX_WIDTH, 30));
this.setPreferredSize(new Dimension(digraph.MAX_WIDTH, 30));
}
// ---------------------------------------------------
//
// declare class methods
//
// ---------------------------------------------------
// method: add_components
//
// arguments: none
// return : none
//
// adds components to the control panel
//
public void add_components () {
constrain(this, menuBar, 0, 0,
GridBagConstraints.REMAINDER, GridBagConstraints.REMAINDER,
GridBagConstraints.BOTH, GridBagConstraints.CENTER,
1, 1, 0, 0, 0, 0);
}
// method: actionPerformed
//
// arguments:
// ActionEvent e: action command that is fired
//
// return : none
//
// method listens for actions taking place on text only menu items
//
public void actionPerformed(ActionEvent e) {
// get the source of the action that just occured
//
String source = e.getActionCommand();
// depending on the source of the event take the appropriate action
//
if(source.equals(openStr)) {
JFileChooser loadChooser=null;
if(digraph.paramFile != null) {
loadChooser = new JFileChooser(digraph.paramFile);
}
else {
String cwd = System.getProperty("user.dir");
loadChooser = new JFileChooser(cwd);
}
// set the font and button text for the load chooser
//
loadChooser.setFont(newFont);
String loadApprove = new String("Load");
loadChooser.setApproveButtonText(loadApprove);
// display the file chooser object
//
int returnVal = loadChooser.showOpenDialog(digraph);
// check to see if a file was selected by the user
//
if (returnVal == JFileChooser.APPROVE_OPTION) {
// retrieve the selected file
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -