📄 main.java
字号:
import language.InterpreterFacade;
import turtle.TurtleCanvas;
import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.*;
public class Main extends Frame implements ActionListener {
private TurtleCanvas canvas = new TurtleCanvas(400, 400);
private InterpreterFacade facade = new InterpreterFacade(canvas);
private TextField programTextField = new TextField("program repeat 3 go right go left end end");
// 构造子
public Main(String title) {
super(title);
setLayout(new BorderLayout());
programTextField.addActionListener(this);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
add(programTextField, BorderLayout.NORTH);
add(canvas, BorderLayout.CENTER);
pack();
setVisible(true);
parseAndExecute();
}
// ActionListener用
public void actionPerformed(ActionEvent e) {
if (e.getSource() == programTextField) {
parseAndExecute();
}
}
private void parseAndExecute() {
String programText = programTextField.getText();
System.out.println("programText = " + programText);
facade.parse(programText);
repaint();
}
public void paint(Graphics g) {
canvas.initialize();
facade.execute();
}
public static void main(String[] args) {
new Main("Interpreter Pattern Sample");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -