亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? analyzerframe.java

?? CMM語言編譯器的詞法分析部分
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
//Frame for CMM lexical analyzer
import javax.swing.*;
import javax.swing.event.UndoableEditEvent;
import javax.swing.event.UndoableEditListener;
import javax.swing.undo.*;

import java.awt.*;
import java.awt.event.*;
import java.io.*;

import static java.awt.event.InputEvent.*;
import static java.awt.Color.*;

/**
 * 
 * @author 流浪的魚 jason_kou@163.com
 */
public class AnalyzerFrame extends JFrame implements ActionListener {
	// Constructor
	public AnalyzerFrame(String title) {
		setTitle(title); // Set the window title
		setJMenuBar(menuBar); // Add the menuBar
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		jTextArea1.getDocument().addUndoableEditListener(undoHandler);

		// Create the menus
		JMenu file_menu = new JMenu("文件(F)");
		JMenu edit_menu = new JMenu("編輯(E)");
		JMenu run_menu = new JMenu("運行(R)");
		JMenu settings_menu = new JMenu("設置(S)");
		JMenu help_menu = new JMenu("幫助(H)");

		// Create the shotcuts
		file_menu.setMnemonic('F');
		edit_menu.setMnemonic('E');
		run_menu.setMnemonic('R');
		settings_menu.setMnemonic('S');
		help_menu.setMnemonic('H');

		// Create the action items for the file_menu
		new_action = new FileAction("新建", KeyStroke
				.getKeyStroke('N', CTRL_MASK), "新建");
		open_action = new FileAction("打開", KeyStroke.getKeyStroke('O',
				CTRL_DOWN_MASK), "打開");
		save_action = new FileAction("保存", KeyStroke.getKeyStroke('S',
				CTRL_DOWN_MASK), "保存");
		close_action = new FileAction("退出");

		// Create the action items for the edit_menu
		cut_action = new FileAction("剪切", KeyStroke.getKeyStroke('T',
				CTRL_DOWN_MASK), "剪切");
		copy_action = new FileAction("復制", KeyStroke.getKeyStroke('C',
				CTRL_DOWN_MASK), "復制");
		paste_action = new FileAction("粘貼", KeyStroke.getKeyStroke('V',
				CTRL_DOWN_MASK), "粘貼");
		cancel_action = new FileAction("撤銷", KeyStroke.getKeyStroke('Z',
				CTRL_DOWN_MASK), "撤銷");

		// Create the action items for the run_menu
		run_action = new FileAction("分析", KeyStroke.getKeyStroke('R',
				CTRL_DOWN_MASK), "詞法分析");

		// Create the action items for the settings_menu
		font_action = new FileAction("字體", KeyStroke.getKeyStroke('F',
				CTRL_DOWN_MASK));

		// Create the action items for the help_menu
		help_action = new JMenuItem("幫助");
		about_action = new JMenuItem("關于");

		// Construct the file_menu
		file_menu.add(new JMenuItem(new_action));
		file_menu.add(new JMenuItem(open_action));
		file_menu.add(new JMenuItem(save_action));
		file_menu.addSeparator();
		file_menu.add(new JMenuItem(close_action));

		// Construct the edit_menu
		edit_menu.add(new JMenuItem(cut_action));
		edit_menu.add(new JMenuItem(copy_action));
		edit_menu.add(new JMenuItem(paste_action));
		edit_menu.addSeparator();
		edit_menu.add(new JMenuItem(cancel_action));

		// Construct the run_menu
		run_menu.add(new JMenuItem(run_action));

		// Construct the settings_menu
		settings_menu.add(new JMenuItem(font_action));

		// Construct the help_menu
		help_menu.add(help_action);
		help_action.addActionListener(this);
		help_menu.add(about_action);
		about_action.addActionListener(this);

		// Add the menus
		menuBar.add(file_menu);
		menuBar.add(edit_menu);
		menuBar.add(run_menu);
		menuBar.add(settings_menu);
		menuBar.add(help_menu);

		// Add the toolBar
		toolBar.addSeparator();
		addToolBarButton(new_action);
		addToolBarButton(open_action);
		addToolBarButton(save_action);

		toolBar.addSeparator();
		addToolBarButton(cut_action);
		addToolBarButton(copy_action);
		addToolBarButton(paste_action);
		addToolBarButton(cancel_action);

		toolBar.addSeparator();
		addToolBarButton(run_action);

		toolBar.setBorder(BorderFactory.createEtchedBorder(WHITE, LIGHT_GRAY)); // Create
		// the
		// border
		toolBar.setFloatable(false); // Init the toolBar
		getContentPane().add(toolBar, BorderLayout.NORTH);

		// Add the popupMenu
		popupMenu.add(cut_action);
		popupMenu.add(copy_action);
		popupMenu.add(paste_action);
		popupMenu.addSeparator();
		popupMenu.add(cancel_action);

		// AddMouseListener for jTextArea1
		jTextArea1.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				checkForTriggerEvent(e);
			}

			public void mouseReleased(MouseEvent e) {
				checkForTriggerEvent(e);
			}

			private void checkForTriggerEvent(MouseEvent e) {
				if (e.isPopupTrigger())
					popupMenu.show(e.getComponent(), e.getX(), e.getY());
				jTextArea1.requestFocus();
			}

		});

		// Create the panels --Codes were created by NetBeans 5.5
		jPanel1.setBorder(javax.swing.BorderFactory
				.createTitledBorder("CMM\u6e90\u7a0b\u5e8f"));
		jTextArea1.setColumns(20);
		jTextArea1.setRows(5);
		jScrollPane1.setViewportView(jTextArea1);

		javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
				jPanel1);
		jPanel1.setLayout(jPanel1Layout);
		jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				jPanel1Layout.createSequentialGroup().addContainerGap()
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.DEFAULT_SIZE, 313,
								Short.MAX_VALUE).addContainerGap()));
		jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				jPanel1Layout.createSequentialGroup().addContainerGap()
						.addComponent(jScrollPane1,
								javax.swing.GroupLayout.DEFAULT_SIZE, 445,
								Short.MAX_VALUE).addContainerGap()));

		jPanel2.setBorder(javax.swing.BorderFactory
				.createTitledBorder("\u5206\u6790\u8f93\u51fa"));
		jTextArea2.setColumns(20);
		jTextArea2.setRows(100);
		jScrollPane2.setViewportView(jTextArea2);

		javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(
				jPanel2);
		jPanel2.setLayout(jPanel2Layout);
		jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				jPanel2Layout.createSequentialGroup().addContainerGap()
						.addComponent(jScrollPane2,
								javax.swing.GroupLayout.DEFAULT_SIZE, 334,
								Short.MAX_VALUE).addContainerGap()));
		jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				jPanel2Layout.createSequentialGroup().addContainerGap()
						.addComponent(jScrollPane2,
								javax.swing.GroupLayout.DEFAULT_SIZE, 445,
								Short.MAX_VALUE).addContainerGap()));

		// ...Layout : Add the Panels --Codes were created by NetBeans 5.5
		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout.createParallelGroup(
				javax.swing.GroupLayout.Alignment.LEADING).addGroup(
				javax.swing.GroupLayout.Alignment.TRAILING,
				layout.createSequentialGroup().addContainerGap().addComponent(
						jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
						javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
						.addGap(23, 23, 23).addComponent(jPanel2,
								javax.swing.GroupLayout.DEFAULT_SIZE,
								javax.swing.GroupLayout.DEFAULT_SIZE,
								Short.MAX_VALUE).addContainerGap())
				.addComponent(toolBar, javax.swing.GroupLayout.DEFAULT_SIZE,
						762, Short.MAX_VALUE));
		layout
				.setVerticalGroup(layout
						.createParallelGroup(
								javax.swing.GroupLayout.Alignment.LEADING)
						.addGroup(
								layout
										.createSequentialGroup()
										.addComponent(
												toolBar,
												javax.swing.GroupLayout.PREFERRED_SIZE,
												41,
												javax.swing.GroupLayout.PREFERRED_SIZE)
										.addPreferredGap(
												javax.swing.LayoutStyle.ComponentPlacement.RELATED)
										.addGroup(
												layout
														.createParallelGroup(
																javax.swing.GroupLayout.Alignment.TRAILING)
														.addComponent(
																jPanel2,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE)
														.addComponent(
																jPanel1,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																javax.swing.GroupLayout.DEFAULT_SIZE,
																Short.MAX_VALUE))
										.addContainerGap()));
		pack();

	}

	// Inner class defining action objects for the menu items
	public class FileAction extends AbstractAction {
		FileAction(String name) {
			super(name);
			String iconFileName = "Images/"+name + ".gif";
			if (new File(iconFileName).exists()) {
				putValue(SMALL_ICON, new ImageIcon(iconFileName));
			}
		}

		FileAction(String name, KeyStroke keystroke) {
			this(name);
			if (keystroke != null) {
				putValue(ACCELERATOR_KEY, keystroke);
			}
		}

		FileAction(String name, KeyStroke keystroke, String tooltip) {
			this(name, keystroke);
			if (tooltip != null) {
				putValue(SHORT_DESCRIPTION, tooltip);
			}
		}

		// Event handler
		public void actionPerformed(ActionEvent e) {
			String name = (String) getValue(NAME);
			if (name.equals(new_action.getValue(NAME))) {
				create();
			} else if (name.equals(save_action.getValue(NAME))) {
				save();
			} else if (name.equals(open_action.getValue(NAME))) {
				open();
			} else if (name.equals(close_action.getValue(NAME))) {
				exit();
			} else if (name.equals(run_action.getValue(NAME))) {
				jTextArea2.setText("");
				run();
			} else if (name.equals(font_action.getValue(NAME))) {
				new FontDemo();
			} else if (name.equals(cut_action.getValue(NAME))) {
				cut();
			} else if (name.equals(copy_action.getValue(NAME))) {
				copy();
			} else if (name.equals(paste_action.getValue(NAME))) {
				paste();
			} else if (name.equals(cancel_action.getValue(NAME))) {
				cancel();
			}
		}
	}

	// Method to add a button to the toolBar
	private JButton addToolBarButton(Action action) {
		JButton button = new JButton(action);
		button.setBorder(BorderFactory.createRaisedBevelBorder());// Add
		// button
		// border
		button.setText(null);
		toolBar.add(button);
		return button;
	}

	// Method to create a file
	public void create() {
		jTextArea1.requestFocus();
		jTextArea1.setText(null);
	}

	// Method to open a file
	public void open() {
		String str = "";
		StringBuilder s = new StringBuilder();
		chooser = new JFileChooser(
				"C:\\Documents and Settings\\All Users\\Documents");
		int returnVal = chooser.showOpenDialog(frm);
		if (returnVal == chooser.APPROVE_OPTION) {
			try {
				File file = new File(chooser.getSelectedFile()
						.getAbsolutePath());
				int length;
				FileReader in = new FileReader(file);
				char buf[] = new char[1024];
				while ((length = in.read(buf)) != -1) {
					str = new String(buf, 0, length);
					s.append(str);
				}
			} catch (IOException a) {
			}
			jTextArea1.setText(s.toString());
		}
	}

	// Method to save the file
	public void save() {
		int i = JOptionPane.showConfirmDialog(frm, "確定保存文件嗎?");
		if (i == 0) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 91小视频在线观看| 国产精品久久一卡二卡| 欧美一级国产精品| 色综合一个色综合| 国产一二精品视频| 亚洲国产另类精品专区| 欧美www视频| 色噜噜狠狠色综合欧洲selulu| 蜜桃视频一区二区三区| 国产精品久久久久久妇女6080| 国产日韩欧美制服另类| 欧美人体做爰大胆视频| 成人综合日日夜夜| 人人超碰91尤物精品国产| 中文字幕中文在线不卡住| 日韩理论片在线| 国产亚洲欧美在线| 欧美一区二区三区免费观看视频| youjizz国产精品| 国产综合久久久久久鬼色| 亚洲黄色av一区| 亚洲国产精品成人综合| 欧美一级二级三级蜜桃| 久久久精品免费免费| 欧美videos中文字幕| 久久天堂av综合合色蜜桃网| 6080午夜不卡| 欧美日韩极品在线观看一区| 日韩三级高清在线| 国产精品家庭影院| 一区二区三区 在线观看视频| 国产精品色哟哟网站| 国产欧美一区二区精品性色超碰 | 国产一区二区三区香蕉| 色综合天天综合色综合av| 制服丝袜日韩国产| 国产精品久久久久久亚洲伦| 视频在线观看一区| 天堂蜜桃91精品| 成人av电影在线网| 99精品欧美一区二区三区小说 | 国产麻豆精品一区二区| 91美女片黄在线| 久久综合精品国产一区二区三区| 亚洲视频一二区| 美女网站在线免费欧美精品| 日本韩国一区二区三区视频| 日韩视频一区二区三区| 亚洲一区二区三区影院| 日韩高清欧美激情| 蜜桃视频在线观看一区| 日本道免费精品一区二区三区| 久久综合av免费| 三级精品在线观看| 在线观看一区二区视频| 91精品国产欧美日韩| 亚洲精选一二三| 成人在线综合网| 日韩三区在线观看| 午夜欧美2019年伦理| 精品一区二区三区在线播放| 国产精品911| 91麻豆国产在线观看| 欧美韩国日本综合| 高清在线观看日韩| 欧美日韩国产一区二区三区地区| 国产精品国产三级国产| 国产盗摄女厕一区二区三区 | 亚洲精品久久久久久国产精华液| 国产激情视频一区二区三区欧美| 欧美电影精品一区二区| 亚洲色图欧洲色图| 91在线观看地址| 亚洲欧洲成人自拍| 日本在线不卡视频| 日韩欧美国产一区在线观看| 性做久久久久久久免费看| 懂色av一区二区在线播放| 久久久噜噜噜久久中文字幕色伊伊 | 国产一区999| 国产丝袜美腿一区二区三区| 丁香激情综合国产| 亚洲欧美日韩在线播放| 美女一区二区在线观看| 久久众筹精品私拍模特| 国产精品自拍网站| 水野朝阳av一区二区三区| 午夜在线成人av| 欧美成人高清电影在线| 国产精品成人免费| 色婷婷综合激情| 5858s免费视频成人| 丝袜亚洲另类欧美| 精品国产免费一区二区三区四区| 亚洲欧美另类久久久精品| 欧美在线观看视频在线| 日韩中文字幕91| 精品国产不卡一区二区三区| 国产成人午夜电影网| 亚洲特黄一级片| 91麻豆精品国产自产在线观看一区 | 日韩高清不卡一区二区| 精品久久久久久久久久久久包黑料 | 成人精品在线视频观看| 亚洲精品免费播放| 欧美一区二区三区四区久久| 国产老女人精品毛片久久| 亚洲美女淫视频| 欧美tk—视频vk| 99精品欧美一区二区三区小说 | 26uuu久久综合| 99久久伊人网影院| 日本视频中文字幕一区二区三区| 欧美精品一区二区久久久| 在线一区二区观看| 国产一区二区视频在线| 亚洲午夜久久久久久久久电影网| 久久欧美中文字幕| 欧美色综合影院| 舔着乳尖日韩一区| 国产精品久久久久久福利一牛影视| 91麻豆精品国产自产在线 | 激情都市一区二区| 亚洲精品视频在线| 国产日韩欧美精品综合| 欧美日韩成人综合| 91丨九色丨尤物| 狠狠色狠狠色综合日日91app| 亚洲电影在线免费观看| 国产精品乱子久久久久| 久久综合狠狠综合久久综合88 | 成人午夜激情在线| 亚洲日本在线观看| 国产精品美女久久久久高潮| 精品乱人伦一区二区三区| 欧美视频一区二| 91精品国产高清一区二区三区蜜臀| 成人av资源下载| 成人v精品蜜桃久久一区| 成人激情免费电影网址| 国产精品乱人伦| 欧美性欧美巨大黑白大战| 国产精品一区二区在线看| 婷婷久久综合九色综合绿巨人| 欧美国产欧美综合| 免费成人结看片| 国产丝袜在线精品| 精品少妇一区二区三区日产乱码 | 日本电影欧美片| 97aⅴ精品视频一二三区| 成人性视频免费网站| 国产精品一区二区在线看| 国产美女久久久久| 国产成人精品网址| 成人综合在线观看| 成人av一区二区三区| jiyouzz国产精品久久| 99精品国产一区二区三区不卡 | 91在线观看高清| 日韩一区二区三区高清免费看看 | 一区二区激情小说| 亚洲欧美国产77777| 亚洲精品视频免费观看| 一区二区三区毛片| 偷窥国产亚洲免费视频| 日本亚洲视频在线| 国产综合成人久久大片91| 成人午夜碰碰视频| 91社区在线播放| 在线观看www91| 日韩亚洲电影在线| 国产欧美一区二区三区网站| 中文字幕一区视频| 亚洲国产精品人人做人人爽| 日本在线不卡一区| 高清成人免费视频| 色丁香久综合在线久综合在线观看| 欧美日韩大陆一区二区| 精品嫩草影院久久| 最新热久久免费视频| 性感美女极品91精品| 国产精品亚洲一区二区三区妖精 | 国产盗摄视频一区二区三区| 99国产精品一区| 日韩三级精品电影久久久| 国产日韩欧美综合在线| 一区二区三区资源| 麻豆成人免费电影| 一本高清dvd不卡在线观看| 欧美日韩一卡二卡三卡| 精品伊人久久久久7777人| 国产精品99久久久久久似苏梦涵| 91视频免费观看| 欧美va日韩va| 亚洲午夜日本在线观看| 成人动漫视频在线| 精品国偷自产国产一区| 亚洲精品va在线观看| 国产一级精品在线|