📄 transformframe.java
字号:
package reg2nfa;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* <p>Title: Regular Expression to NFA</p>
*
* <p>Description: A program using to pase regular expression to NFA, or else
* deeply into DFA</p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: Onlyer Corporation</p>
*
* @author Onlyer Lee
* @version 1.0
*/
public class TransformFrame
extends JFrame {
TransformModel transModel = null;
TransformView transView = null;
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JMenuBar jMenuBar1 = new JMenuBar();
JMenu fileMenu = new JMenu();
JMenuItem saveMenuItem = new JMenuItem();
JMenuItem exitMenuItem = new JMenuItem();
JMenu convertMenu = new JMenu();
JMenuItem expMenuItem = new JMenuItem();
JMenuItem nfaMenuItem = new JMenuItem();
JMenuItem dfaMenuItem = new JMenuItem();
JMenu helpMenu = new JMenu();
JMenuItem AboutMenuItem = new JMenuItem();
JLabel regExpLabel = new JLabel();
public TransformFrame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}
catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
//boolean bool = transModel.setRegExpression(regStr);
//if(bool) transModel.createNFA();
contentPane = (JPanel) getContentPane();
contentPane.setLayout(borderLayout1);
setJMenuBar(jMenuBar1);
fileMenu.setMnemonic('F');
fileMenu.setText("File");
saveMenuItem.setEnabled(false);
saveMenuItem.setMnemonic('S');
saveMenuItem.setText("Save");
exitMenuItem.setMnemonic('X');
exitMenuItem.setText("Exit");
convertMenu.setMnemonic('C');
convertMenu.setText("Convert");
expMenuItem.setMnemonic('E');
expMenuItem.setText("Reg Exp");
expMenuItem.addActionListener(new TransformFrame_expMenuItem_actionAdapter(this));
nfaMenuItem.setEnabled(false);
nfaMenuItem.setMnemonic('N');
nfaMenuItem.setText("To NFA");
nfaMenuItem.addActionListener(new TransformFrame_nfaMenuItem_actionAdapter(this));
dfaMenuItem.setEnabled(false);
dfaMenuItem.setText("To DFA");
helpMenu.setMnemonic('H');
helpMenu.setText("Help");
AboutMenuItem.setMnemonic('A');
AboutMenuItem.setText("About");
regExpLabel.setBackground(SystemColor.infoText);
regExpLabel.setFont(new java.awt.Font("Dialog", Font.BOLD | Font.ITALIC, 17));
regExpLabel.setForeground(Color.blue);
contentPane.setBackground(Color.cyan);
//contentPane.add(transView, BorderLayout.CENTER);
jMenuBar1.add(fileMenu);
jMenuBar1.add(convertMenu);
jMenuBar1.add(helpMenu);
fileMenu.add(saveMenuItem);
fileMenu.add(exitMenuItem);
convertMenu.add(expMenuItem);
convertMenu.add(nfaMenuItem);
convertMenu.add(dfaMenuItem);
helpMenu.add(AboutMenuItem);
contentPane.add(regExpLabel, java.awt.BorderLayout.NORTH);
setSize(new Dimension(400, 300));
setTitle("Convert to NFA");
}
public void expMenuItem_actionPerformed(ActionEvent e) {
expMenuItem_action();
}
public void nfaMenuItem_actionPerformed(ActionEvent e) {
nfaMenuItem_action();
}
private void expMenuItem_action() {
String regStr = JOptionPane.showInputDialog("Input The Regular Expression:");
if(regStr == null) return;
transModel = new TransformModel();
regExpLabel.setText(regStr);
if(transModel.setRegExpression(regStr)) {
nfaMenuItem.setEnabled(true);
}
if(transView != null) {
contentPane.remove(transView);
this.validate();
}
transView = new TransformView(transModel);
}
private void nfaMenuItem_action() {
if(nfaMenuItem.isEnabled()) {
contentPane.add(transView, java.awt.BorderLayout.CENTER);
transModel.createNFA();
//transView.repaint();
this.validate();
}
}
}
class TransformFrame_nfaMenuItem_actionAdapter
implements ActionListener {
private TransformFrame adaptee;
TransformFrame_nfaMenuItem_actionAdapter(TransformFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.nfaMenuItem_actionPerformed(e);
}
}
class TransformFrame_expMenuItem_actionAdapter
implements ActionListener {
private TransformFrame adaptee;
TransformFrame_expMenuItem_actionAdapter(TransformFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.expMenuItem_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -