📄 celluarcontrol.java
字号:
package celluar;import java.awt.event.*;import java.awt.*;/** * Title: Game of Life * Description: * Copyright: Copyright (c) 2003 * Company: Http://agents.yeah.net * @author Keats * @version 1.0 */final class CelluarControl extends Frame { celluar localcell;//主程序的本地拷贝,以便可以更新主程序中的值 Label labelSize = new Label(); TextField txtSize = new TextField(); Label labelPer = new Label(); TextField txtPer = new TextField(); Label label1 = new Label(); Label label2 = new Label(); Label labelRefreshSteps = new Label(); TextField txtRefreshSteps = new TextField(); Label label3 = new Label(); Button btnConfirm = new Button(); Button btnCancel = new Button(); Button btnDefault = new Button(); Label label4 = new Label(); public CelluarControl(celluar cl) { super("参数设置"); localcell=cl; try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setBackground(Color.white); this.setLayout(null); this.setBounds(0,0,300,300); this.addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosing(WindowEvent e) { this_windowClosing(e); } }); txtSize.setText("100"); txtSize.setBounds(new Rectangle(102, 44, 53, 19)); labelSize.setText("世界的大小:"); labelSize.setBounds(new Rectangle(20, 44, 73, 22)); labelPer.setText("个体数量占世界的比例:"); labelPer.setBounds(new Rectangle(20, 92, 134, 18)); txtPer.setText("0.08"); txtPer.setBounds(new Rectangle(161, 93, 56, 18)); label1.setText("(最大尺寸150,取值越大运行速度越慢)"); label1.setBounds(new Rectangle(28, 67, 228, 20)); label2.setText("(取值范围(0,1))"); label2.setBounds(new Rectangle(27, 113, 140, 18)); labelRefreshSteps.setText("刷新的频率:"); labelRefreshSteps.setBounds(new Rectangle(18, 135, 79, 20)); txtRefreshSteps.setText("1"); txtRefreshSteps.setBounds(new Rectangle(98, 134, 61, 20)); label3.setText("(每演化几步刷新一次)"); label3.setBounds(new Rectangle(26, 159, 133, 22)); btnConfirm.setLabel("确定"); btnConfirm.setBounds(new Rectangle(18, 190, 59, 21)); btnConfirm.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnConfirm_actionPerformed(e); } }); btnCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnCancel_actionPerformed(e); } }); btnCancel.setBounds(new Rectangle(92, 190, 59, 21)); btnCancel.setLabel("取消"); btnDefault.setLabel("默认值"); btnDefault.setBounds(new Rectangle(165, 190, 72, 21)); btnDefault.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { btnDefault_actionPerformed(e); } }); label4.setText("keatskk@sina.com"); label4.setBounds(new Rectangle(59, 220, 152, 20)); this.add(labelSize, null); this.add(label1, null); this.add(labelPer, null); this.add(labelRefreshSteps, null); this.add(label2, null); this.add(label3, null); this.add(btnConfirm, null); this.add(txtRefreshSteps, null); this.add(txtSize, null); this.add(txtPer, null); this.add(btnCancel, null); this.add(btnDefault, null); this.add(label4, null); reset(); } public void reset(){ //设置所有文本框中的数值为初始值 txtSize.setText(Integer.toString(localcell.size)); txtPer.setText(Double.toString(localcell.per)); txtRefreshSteps.setText(Integer.toString(localcell.refreshSteps)); } void btnConfirm_actionPerformed(ActionEvent e) { //用文本框中的参数数值更新主程序中的响应参数 localcell.size=Integer.parseInt(txtSize.getText()); if (localcell.size<=0) return; localcell.per=Double.valueOf(txtPer.getText()).doubleValue(); if (localcell.per<=0||localcell.per>=1) return; localcell.refreshSteps=Integer.parseInt(txtRefreshSteps.getText()); if (localcell.refreshSteps<1) return; localcell.reinit(); localcell.running=true; localcell.pausebutton.setLabel("Stop"); this.hide(); this.dispose(); } void btnCancel_actionPerformed(ActionEvent e) { localcell.running=true; localcell.pausebutton.setLabel("Stop"); this.hide(); this.dispose(); } void btnDefault_actionPerformed(ActionEvent e) { txtSize.setText("50"); txtPer.setText("0.1"); txtRefreshSteps.setText("1"); } void this_windowClosing(WindowEvent e) { localcell.running=true; localcell.pausebutton.setLabel("Stop"); this.hide(); this.dispose(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -