📄 testcontextmodelsmenu.java
字号:
package testContextModels;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import contextsModelManager.*;
public class TestContextModelsMenu {
public static void main(String[] args) {
// 初始化主画框,调整其位置和宽度,使得显示出来的按钮更漂亮
MainSwingFrame.init("Aspect-Oriented Algorithm Animation Tools",
MainSwingFrame.getWidth(), MainSwingFrame.getHeight(),
MainSwingFrame.getStartX(), MainSwingFrame.getStartY(), "windows");
MenuCreator demo = new MenuCreator(MainSwingFrame.getContentPane(),
MainSwingFrame.getMainFrame());
// 创建演示用的菜单和组件,并菜单放置在主画框,组件放置主画框的内容面板
demo.createMenu();
// 启动主画框,并进行演示
MainSwingFrame.start();
}
}
class MenuCreator {
private Container place; // 放置演示组件的容器
private JFrame topLevelFrame; // 放置菜单的顶层容器
private JPanel output; // 用于输出结果的文本区域
public MenuCreator(Container place, JFrame topLevelFrame) {
this.place = place;
this.topLevelFrame = topLevelFrame;
}
// 创建用于演示的组件,并返回放置它们的容器
public Container createMenu() {
// 创建一文本区域,用来输出用户对菜单的选择结果
output = new JPanel();
JScrollPane scrollPane = new JScrollPane(output);
// scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
place.add(scrollPane, BorderLayout.CENTER);
// 创建普通菜单和广播按钮菜单项的监听器
MenuButtonListener menuButtonListener = new MenuButtonListener();
// 创建菜单条
JMenuBar mainMenuBar = new JMenuBar();
topLevelFrame.setJMenuBar(mainMenuBar); // 放置在顶层容器
// 创建第一个主菜单项
JMenu menu = new JMenu("Algorithm Model(A)");
menu.setMnemonic(KeyEvent.VK_A); // 设置字符键A为快捷键
mainMenuBar.add(menu); // 加入到菜单条
menu.addSeparator();
JMenuItem menuItem = new JMenuItem("Open(O)");
menuItem.setMnemonic(KeyEvent.VK_O);
menuItem.addActionListener(menuButtonListener);
menuItem.setActionCommand("OpenAM");
menu.add(menuItem);
menuItem = new JMenuItem("Save(S)");
menuItem.setMnemonic(KeyEvent.VK_S);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Close(C)");
menuItem.setMnemonic(KeyEvent.VK_C);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Generate Skeleton of Algorithm Implementation Model...(I)");
menuItem.setMnemonic(KeyEvent.VK_G);
menu.add(menuItem);
menuItem = new JMenuItem("Generate Skeleton of Algorithm Interesting Events Model...(E)");
menuItem.setMnemonic(KeyEvent.VK_G);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Exit(X)");
menuItem.setMnemonic(KeyEvent.VK_X);
menuItem.addActionListener(menuButtonListener);
menuItem.setActionCommand("exit");
menu.add(menuItem);
// 创建第二个主菜单项
menu = new JMenu("Algorithm Implementation Model(A)");
menu.setMnemonic(KeyEvent.VK_A); // 设置字符键A为快捷键
mainMenuBar.add(menu); // 加入到菜单条
menu.addSeparator();
menuItem = new JMenuItem("Open(O) ");
menuItem.setMnemonic(KeyEvent.VK_O);
menu.add(menuItem);
menuItem = new JMenuItem("Save(S)");
menuItem.setMnemonic(KeyEvent.VK_S);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Close(C)");
menuItem.setMnemonic(KeyEvent.VK_C);
menu.add(menuItem);
menu = new JMenu("Algorithm Interesting Events Model(A)");
menu.setMnemonic(KeyEvent.VK_A); // 设置字符键A为快捷键
mainMenuBar.add(menu); // 加入到菜单条
menu.addSeparator();
menuItem = new JMenuItem("Open(O)");
menuItem.setMnemonic(KeyEvent.VK_O);
menu.add(menuItem);
menuItem = new JMenuItem("Save(S)");
menuItem.setMnemonic(KeyEvent.VK_S);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Close(C)");
menuItem.setMnemonic(KeyEvent.VK_C);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Generate Skeleton of Algorithm Animation Model...(I)");
menuItem.setMnemonic(KeyEvent.VK_G);
menu.add(menuItem);
// 创建第二个主菜单项
menu = new JMenu("Algorithm Animation Model(A)");
menu.setMnemonic(KeyEvent.VK_A); // 设置字符键A为快捷键
mainMenuBar.add(menu); // 加入到菜单条
menu.addSeparator();
menuItem = new JMenuItem("Open(O) ");
menuItem.setMnemonic(KeyEvent.VK_O);
menu.add(menuItem);
menuItem = new JMenuItem("Save(S) ");
menuItem.setMnemonic(KeyEvent.VK_S);
menu.add(menuItem);
menu.addSeparator();
menuItem = new JMenuItem("Close(C)");
menuItem.setMnemonic(KeyEvent.VK_C);
menu.add(menuItem);
menu = new JMenu("Help(H)");
menu.setMnemonic(KeyEvent.VK_H);
mainMenuBar.add(menu);
menu.addSeparator();
menuItem = new JMenuItem("about...");
menuItem.setAccelerator(KeyStroke.getKeyStroke("F1"));
menuItem.addActionListener(menuButtonListener);
menuItem.setActionCommand("about");
menu.add(menuItem);
return place;
}
// 监听按钮类型菜单项的按下动作
private class MenuButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
JMenuItem source = (JMenuItem)(e.getSource());
String command = source.getActionCommand();
if (command.equals("about")) {
// 弹出一窗口显示一些信息
JOptionPane.showMessageDialog(MainSwingFrame.getMainFrame(),
"Aspect-oriented Algorithm Animation Tools v1.0", "About",
JOptionPane.WARNING_MESSAGE);
} else if (command.equals("exit")) {
// 退出整个程序
System.exit(1);
} else if (command.equals("OpenAM")) {
SimpleModelEditor editor = new SimpleModelEditor(output);
try {
editor.open("contextsModels/SortAlgorithm.xml");
} catch (Exception exc) {
exc.printStackTrace();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -