1 /*****************2 * 构建窗口类3 * 菜单choice(控制):1、开始 2、继续 3、结束4 * 菜单pattern(模式):1、easy 2、love型 3、arrow箭头型 4、随机模式5 * 菜单speed(速度):1、100 2、1000 3、50006 * 菜单help(帮助):1、abstract(游戏规则介绍)2、editor(制作者)7 * 红色栏:1、Number of remaining lives(剩余生命个数)2、step:生命演化步数8 * 表格栏 30*309 */
10
11 packagegame_life_self;12
13 importjava.awt.BorderLayout;14 importjava.awt.Color;15 importjava.awt.GridLayout;16 importjava.awt.event.ActionEvent;17 importjava.awt.event.ActionListener;18 importjava.util.regex.Pattern;19
20 importjavax.swing.JFrame;21 importjavax.swing.JMenu;22 importjavax.swing.JMenuBar;23 importjavax.swing.JMenuItem;24 importjavax.swing.JOptionPane;25 importjavax.swing.JPanel;26 importjavax.swing.JLabel;27 importjava.awt.FlowLayout;28
29 public classset_frame {30 JFrame iFrame;31 //游戏迭代速度
32 static int speed = 1000;33 //剩余生命个数
34 static int life = 0;35 //演化步数
36 static int step_one = 0;37 myThread thread = null;38 staticstart_frame start_frame;39 //显示细胞状态面板
40 staticJPanel[][] jPanel;41 //模式一(love)
42 static int pattern = 1;43 //显示生命个数面板
44 staticJPanel panel_1;45 staticJLabel number;46 staticJLabel step;47 static boolean end = true;48 public set_frame (int row ,intcol) {49 //建立窗口
50 iFrame = new JFrame("the game of life");51 //初始化边界
52 jPanel = newJPanel[row][col];53 iFrame.getContentPane().setLayout(new BorderLayout(0, 0));54
55 JPanel panel = newJPanel();56 iFrame.getContentPane().add(panel, BorderLayout.NORTH);57 panel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));58
59 number = new JLabel("Number of remaining lives: "+life+" ");60 panel.add(number);61
62 step = new JLabel("step: "+step_one);63 panel.a