mainboard.java

来自「这是一个用来解析文件从而得到一个DFA的设计的原理程序1」· Java 代码 · 共 128 行

JAVA
128
字号
package ui;

import logic.DFA;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class MainBoard extends JFrame implements ActionListener {
	private static final long serialVersionUID = 1L;

	public static JTextArea filePathText;
	public static JTextArea checkText;
	JTextArea infoText;
	JButton fileChooseButton, checkButton;
	JFileChooser fc;
	JPanel filePanel, checkPanel, infoPanel;
	static String arg;
	public static String trace;
	
	/*these are the design of my frame*/
	public MainBoard() {
		Container container = getContentPane();
		container.setLayout(null);

		fileChooseButton = new JButton("choose");
		checkButton = new JButton("check");

		filePathText = new JTextArea();
		filePathText.setEditable(false);
		checkText = new JTextArea();
		infoText = new JTextArea();

		filePanel = new JPanel();
		filePanel.setSize(450, 100);
		filePanel.setLocation(10, 10);
		filePanel.setBorder(BorderFactory
				.createTitledBorder("Please choose a dfa file:"));

		filePanel.setLayout(null);
		filePanel.add(filePathText);
		filePathText.setSize(200, 50);
		filePathText.setLocation(20, 30);

		filePanel.add(fileChooseButton);
		fileChooseButton.setSize(80, 40);
		fileChooseButton.setLocation(300, 35);

		checkPanel = new JPanel();
		checkPanel.setSize(450, 100);
		checkPanel.setLocation(10, 130);
		checkPanel.setBorder(BorderFactory
				.createTitledBorder("Please input a string to check:"));
		checkPanel.setLayout(null);
		checkPanel.add(checkText);
		checkText.setSize(200, 50);
		checkText.setLocation(20, 30);

		checkPanel.add(checkButton);
		checkButton.setSize(80, 40);
		checkButton.setLocation(300, 35);

		infoPanel = new JPanel();
		infoPanel.setSize(450, 200);
		infoPanel.setLocation(10, 250);
		infoPanel.setBorder(BorderFactory
				.createTitledBorder("The trace information:"));

		infoPanel.setLayout(null);
		infoPanel.add(infoText);
		infoText.setSize(400, 150);
		infoText.setLocation(20, 30);
		infoText.setLineWrap(true);
		infoText.setWrapStyleWord(true);

		container.add(filePanel);
		container.add(checkPanel);
		container.add(infoPanel);
		fileChooseButton.addActionListener(this);
		checkButton.addActionListener(this);
	}

	public void actionPerformed(ActionEvent e) {
		//get the file path
		if (e.getSource() == fileChooseButton) {
			fc = new JFileChooser();
			fc.setCurrentDirectory(new File("./src/dfa.dat"));
			int intRetVal = fc.showOpenDialog(this);
			if (intRetVal == JFileChooser.APPROVE_OPTION) {
				filePathText.setText(fc.getSelectedFile().getPath());
			}
		}
		//check the input string
		if (e.getSource() == checkButton) {
			new DFA();
			if (arg.equals("gettrace")) {
				infoText.setText(trace);
			} else {
				infoText
						.setText("You have not select to give the trace in the command line!");
			}
		}
	}

	public static void main(String args[]) {
		//get the command-line argument
		if (args.length > 0) {
			arg = args[0];
		} else {
			arg = "";
		}

		MainBoard mainBoard = new MainBoard();
		mainBoard.setDefaultCloseOperation(EXIT_ON_CLOSE);
		mainBoard.setSize(500, 500);
		mainBoard.setResizable(false);
		mainBoard.setLocation(300, 200);
		mainBoard.setTitle("FsPro2----The simulation of DFA");
		mainBoard.setVisible(true);
	}
}

⌨️ 快捷键说明

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