⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 handoutframe.java

📁 一个C语言子集的编译器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		tBar.add(tb4);
		tBar.add(tb5);
		tBar.add(tb6);
		tBar.addSeparator();
		tBar.add(tb7);
		tBar.add(tb8);
		tBar.add(tb9);
		tBar.add(tb10);
		tBar.add(tb11);

		centPane = new SourcePane();
		bottomPane = new CorePane();
		tablePane = new TablePane();
		tablePane.setVisible(false);
		codePane = new CodePane();
		lPane = new TreePane(centPane);

		outPane = new OutPane(tablePane, codePane);
		outPane.setContinuousLayout(true);
		outPane.setDividerSize(0);
		midPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, centPane, outPane);
		midPane.setContinuousLayout(true);
		midPane.setDividerSize(2);
		rPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, midPane, bottomPane);
		rPane.setContinuousLayout(true);
		rPane.setDividerSize(2);
		basePane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, lPane, rPane);
		basePane.setContinuousLayout(true);
		basePane.setDividerSize(2);

		basePane.setDividerLocation(180);
		rPane.setDividerLocation(450);
		midPane.setDividerLocation(630);
		outPane.setDividerLocation(0);

		mPane.add(basePane, BorderLayout.CENTER);
		status = new StatusBar();
		status.setPreferredSize(new Dimension(mPane.getWidth(), 25));
		mPane.add(status, BorderLayout.SOUTH);

	}

	@SuppressWarnings("deprecation")
	public void actionPerformed(ActionEvent e) {
		if (e.getSource().equals(m11) || e.getSource().equals(tb1)) {
			centPane.open(new File("File" + fileCount++ + ".txt"));
		} else if (e.getSource().equals(m12)||e.getSource().equals(tb2)) {
			JFileChooser fChooser = new JFileChooser();
			fChooser.setDialogTitle("Open File");
			fChooser.setMultiSelectionEnabled(false);
			fChooser.setFileFilter(new FileFilter() {
				public boolean accept(File f) {
					return f.getName().toLowerCase().endsWith(".txt")
							|| f.isDirectory();
				};

				public String getDescription() {
					return "TXT File";
				}
			});
			int result = fChooser.showOpenDialog(this);
			if (result == 0) {
				centPane.open(fChooser.getSelectedFile());
			}
		} else if (e.getSource().equals(m13) || e.getSource().equals(tb3)) {
			SourcePane.savSlct();
		} else if (e.getSource().equals(m14)) {
			File f = SourcePane.savSlctAs();
			centPane.remove(centPane.getSelectedComponent());
			centPane.open(f);
		} else if (e.getSource().equals(m15)) {
			
		} else if (e.getSource().equals(m16)) {
			System.exit(0);
		} else if (e.getSource().equals(m21)) {

		} else if (e.getSource().equals(m22)) {

		} else if (e.getSource().equals(m23)) {

		} else if (e.getSource().equals(m24)) {

		} else if (e.getSource().equals(m25)) {

		} else if (e.getSource().equals(m26)) {

		} else if (e.getSource().equals(m31) || e.getSource().equals(tb7)) {
			Lexer.setDebug(false);
			fileBuf = SourcePane.selected.file;
			Thread t = new ParserThread(SourcePane.selected.file);
			t.start();
		} else if (e.getSource().equals(m32)) {
			if (fileBuf != null){
				Lexer.setDebug(false);
				Thread t = new ParserThread(fileBuf);
				t.start();
			}
		} else if (e.getSource().equals(m33)) {
			CorePane.clear();
		} else if (e.getSource().equals(m34)) {
			tb8.setEnabled(true);
			Lexer.setDebug(true);
			fileBuf = SourcePane.selected.file;
			Thread t = new ParserThread(SourcePane.selected.file);
			t.start();
			tb11.setEnabled(true);
		} else if (e.getSource().equals(m35)) {
			CorePane.clear();
		} else if (e.getSource().equals(m41) || e.getSource().equals(tb9)) {
			CorePane.clear();
			Interpreter.setDebug(false);
			Thread t = new InterpretThread();
			t.start();
			tb11.setEnabled(true);
		} else if (e.getSource().equals(m42)) {
			CorePane.clear();
			tb10.setEnabled(true);
			Interpreter.setDebug(true);
			Thread t = new InterpretThread();
			t.start();
			tb11.setEnabled(true);
		} else if (e.getSource().equals(m43)) {
			CorePane.clear();
		} else if (e.getSource().equals(m511)) {

			if (m521.isSelected())
				basePane.setDividerLocation(180);
			if (m522.isSelected())
				rPane.setDividerLocation(450);

			outPane.setDividerSize(0);
			midPane.setDividerLocation(630);
			outPane.setDividerLocation(0);
			tablePane.setVisible(false);
			outPane.setVisible(true);
			midPane.validate();

			if (bottomPane.hasWatch)
				bottomPane.delWatch();

		} else if (e.getSource().equals(m512)) {
			if (m512.isSelected()) {
				basePane.setDividerLocation(0);
				rPane.setDividerLocation(rPane.getHeight());
				outPane.setVisible(false);
				midPane.setDividerLocation(0);
				midPane.validate();
				if (bottomPane.hasWatch)
					bottomPane.delWatch();
			}
		} else if (e.getSource().equals(m513)) {
			if (m513.isSelected()) {
				basePane.setDividerLocation(0);
				rPane.setDividerLocation(450);
				outPane.setVisible(true);
				midPane.setDividerLocation(400);
				midPane.validate();
				tablePane.setVisible(true);
				outPane.setDividerSize(3);
				outPane.setDividerLocation(400);
				outPane.validate();
				bottomPane.addWatch();
			}
		} else if (e.getSource().equals(m521)) {
			if (m521.isSelected()) {
				basePane.setDividerLocation(180);
				midPane.setDividerLocation(630);

				outPane.setDividerLocation(0);
				midPane.validate();
				outPane.validate();
			} else {
				basePane.setDividerLocation(0);
				midPane.setDividerLocation(750);

				outPane.setDividerLocation(0);
				midPane.validate();
				outPane.validate();
			}
		} else if (e.getSource().equals(m522)) {
			if (m522.isSelected()) {
				rPane.setDividerLocation(450);
			} else {
				rPane.setDividerLocation(rPane.getHeight());
			}
		} else if (e.getSource().equals(m53)) {
			CorePane.clear();
		} else if (e.getSource().equals(m61)) {
			CorePane.clear();
		} else if (e.getSource().equals(m62)) {
			CorePane.clear();
		} else if (e.getSource().equals(m63)) {
			new MyInfoFrame();
		} else if (e.getSource().equals(tb4)) {

		} else if (e.getSource().equals(tb5)) {

		} else if (e.getSource().equals(tb6)) {

		} else if (e.getSource().equals(tb8)) {
			ParseThr.resume();
		} else if (e.getSource().equals(tb10)) {
			IntepretThr.resume();
		} else if (e.getSource().equals(tb11)) {
			if (ParseThr.isAlive()) {
				tb11.setEnabled(false);
				tb8.setEnabled(false);
				ParseThr.stop();
				ProblemPane.write(ConstSet.COMPINTRUPT);
				ConsolePane.write(ConstSet.COMPINTRUPT);
				InfoPane.write(ConstSet.COMPINTRUPT);
			}
			if (IntepretThr.isAlive()) {
				tb11.setEnabled(false);
				tb10.setEnabled(false);
				tb9.setEnabled(false);
				IntepretThr.stop();
				ProblemPane.write(ConstSet.INTEINTRUPT);
				ConsolePane.write(ConstSet.INTEINTRUPT);
				InfoPane.write(ConstSet.INTEINTRUPT);
			}

		}
	}

	public static void setParseThr(Thread t) {
		ParseThr = t;
	}

	public static void setIntepretThr(Thread t) {
		IntepretThr = t;
	}

	static Thread ParseThr;

	static Thread IntepretThr;

	private JMenuItem m11;

	private JMenuItem m12;

	private JMenuItem m13;

	private JMenuItem m14;

	private JMenuItem m15;

	private JMenuItem m16;

	private JMenuItem m21;

	private JMenuItem m22;

	private JMenuItem m23;

	private JMenuItem m24;

	private JMenuItem m25;

	private JMenuItem m26;

	private JMenuItem m27;

	private JMenuItem m31;

	private JMenuItem m32;

	private JMenuItem m33;

	private JMenuItem m34;

	private JMenuItem m35;

	private JMenuItem m41;

	private JMenuItem m42;

	private JMenuItem m43;

	private JMenu m51;

	private JMenuItem m511;

	private JMenuItem m512;

	private JMenuItem m513;

	private JMenu m52;

	private JMenuItem m521;

	private JMenuItem m522;

	private JMenuItem m53;

	private JMenuItem m61;

	private JMenuItem m62;

	private JMenuItem m63;

	private static JButton tb1;

	private static JButton tb2;

	private static JButton tb3;

	private static JButton tb4;

	private static JButton tb5;

	private static JButton tb6;

	public static JButton tb7;

	public static JButton tb8;

	public static JButton tb9;

	public static JButton tb10;

	public static JButton tb11;

	private JToolBar tBar;

	private JPanel mPane;

	private TreePane lPane;

	private JSplitPane basePane;

	private JSplitPane rPane;

	private JSplitPane midPane;

	public static SourcePane centPane;

	public static OutPane outPane;

	public static CodePane codePane;

	public static TablePane tablePane;

	public static CorePane bottomPane;

	private StatusBar status;

	private int fileCount = 1;

	private File fileBuf = null;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -