⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 celluarcontrol.java

📁 程序名称:企业竞争与合作的模拟 程序介绍: 一个方格的世界
💻 JAVA
字号:
package pdcelluar;//import com.borland.jbcl.layout.*;import java.awt.*;import java.awt.event.*;/** * Title:竞争与合作,动态囚徒困境博弈模拟程序 * Description:该类负责参数的调整 * Copyright:    Copyright (c) 2003 * Company:http://agents.yeah.net * @author:jake * @version 1.0 */final public class CelluarControl extends Frame {  pdcelluar localpd;//主程序的本地拷贝,以便可以更新主程序中的值  Button btnConfirm = new Button();  Button btnCancel = new Button();  Button btnDefault = new Button();  Label label1 = new Label();  TextField txtDensity = new TextField();  Label label2 = new Label();  TextField txtCoop = new TextField();  Label label3 = new Label();  Label label4 = new Label();  Label label5 = new Label();  Label label6 = new Label();  Label label7 = new Label();  TextField textField1 = new TextField();  TextField textField2 = new TextField();  TextField textField3 = new TextField();  TextField txtValue = new TextField();  TextField textField4 = new TextField();  TextField textField5 = new TextField();  TextField txtValue1 = new TextField();  TextField text1 = new TextField();  Label label8 = new Label();  TextField txtSize = new TextField();  Label label9 = new Label();  TextField txtRefresh = new TextField();  Choice choice1 = new Choice();  Label label10 = new Label();  public CelluarControl(pdcelluar pd) {    super("参数设置");    localpd=pd;    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception {    //初始化函数    this.setLayout(null);    this.setBounds(0,0,300,300);    this.addWindowListener(new java.awt.event.WindowAdapter() {      public void windowClosing(WindowEvent e) {        this_windowClosing(e);      }    });    label1.setText("企业的总比例:");    label1.setBounds(new Rectangle(147, 30, 84, 18));    btnConfirm.setLabel("确定");    btnConfirm.setBounds(new Rectangle(89, 249, 59, 29));    btnConfirm.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        btnConfirm_actionPerformed(e);      }    });    btnCancel.setLabel("取消");    btnCancel.setBounds(new Rectangle(145, 249, 59, 29));    btnCancel.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        btnCancel_actionPerformed(e);      }    });    btnDefault.setLabel("恢复");    btnDefault.setBounds(new Rectangle(205, 248, 59, 29));    btnDefault.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        btnDefault_actionPerformed(e);      }    });    label2.setText("合作者的比例:");    label2.setBounds(new Rectangle(19, 65, 84, 18));    label3.setText("博弈规则的设定:");    label3.setBounds(new Rectangle(9, 152, 96, 18));    label4.setText("合作");    label4.setBounds(new Rectangle(73, 191, 24, 18));    label5.setText("不合作");    label5.setBounds(new Rectangle(222, 160, 36, 18));    label6.setText("合作");    label6.setBounds(new Rectangle(142, 163, 24, 18));    label7.setText("不合作");    label7.setBounds(new Rectangle(64, 222, 36, 18));    textField1.setEnabled(false);    textField1.setText("1");    textField1.setBounds(new Rectangle(136, 189, 21, 22));    textField2.setEnabled(false);    textField2.setText("1");    textField2.setBounds(new Rectangle(165, 189, 14, 22));    textField3.setEnabled(false);    textField3.setText("0");    textField3.setBounds(new Rectangle(164, 221, 15, 22));    textField4.setEnabled(false);    textField4.setText("0");    textField4.setBounds(new Rectangle(200, 221, 17, 22));    textField5.setEnabled(false);    textField5.setText("0");    textField5.setBounds(new Rectangle(223, 220, 17, 22));    text1.setEnabled(false);    text1.setText("0");    text1.setBounds(new Rectangle(199, 189, 17, 22));    label8.setText("世界的尺寸:");    label8.setBounds(new Rectangle(19, 30, 72, 18));    txtValue1.addTextListener(new java.awt.event.TextListener() {      public void textValueChanged(TextEvent e) {        txtValue1_textValueChanged(e);      }    });    txtValue.addTextListener(new java.awt.event.TextListener() {      public void textValueChanged(TextEvent e) {        txtValue_textValueChanged(e);      }    });    txtValue.setBounds(new Rectangle(106, 222, 50, 22));    txtValue1.setBounds(new Rectangle(221, 188, 53, 22));    label9.setText("刷新间隔:");    label9.setBounds(new Rectangle(24, 123, 80, 15));    txtRefresh.setBounds(new Rectangle(109, 118, 82, 22));    choice1.setBounds(new Rectangle(109, 96, 180, 17));    label10.setText("邻居类型:");    label10.setBounds(new Rectangle(22, 95, 61, 17));    this.add(btnConfirm, null);    this.add(btnCancel, null);    this.add(btnDefault, null);    this.add(label4, null);    this.add(label7, null);    this.add(label6, null);    this.add(textField1, null);    this.add(textField2, null);    this.add(textField3, null);    this.add(text1, null);    this.add(textField4, null);    this.add(textField5, null);    this.add(label5, null);    this.add(txtValue1, null);    this.add(label3, null);    this.add(txtValue, null);    this.add(label8, null);    this.add(txtSize, null);    this.add(label9, null);    choice1.addItem("上下左右四个邻居(冯.扭曼型)");    choice1.addItem("四面八方八个邻居(摩尔型)");    //choice1.addItem("四面八方16个邻居(GN型)");    this.add(label2, null);    this.add(label10, null);    this.add(label1, null);    this.add(txtDensity, null);    this.add(choice1, null);    this.add(txtCoop, null);    this.add(txtRefresh, null);    reset();//设置所有文本框中的数值为初始值    this.pack();  }  public void reset(){    //设置所有文本框中的数值为初始值    txtSize.setText(Integer.toString(localpd.max));    txtSize.setBounds(new Rectangle(91, 29, 41, 22));    txtDensity.setText(Double.toString(localpd.nonempty_p));    txtDensity.setBounds(new Rectangle(236, 28, 48, 22));    txtCoop.setText(Double.toString(localpd.coop_u));    txtCoop.setBounds(new Rectangle(108, 65, 83, 22));    txtValue.setText(Double.toString(localpd.m_value));    txtValue1.setText(Double.toString(localpd.m_value));    txtRefresh.setText(Integer.toString(localpd.refreshSteps));    choice1.select(localpd.NeiType);  }  void btnConfirm_actionPerformed(ActionEvent e) {      //用文本框中的参数数值更新主程序中的响应参数      localpd.max=Integer.parseInt(txtSize.getText());      if(localpd.max<=0)return;      localpd.nonempty_p=Double.valueOf(txtDensity.getText()).doubleValue();      if(localpd.nonempty_p>1||localpd.nonempty_p<=0)return;      if((int)(localpd.max*localpd.max*localpd.nonempty_p)==0){          return;      }      localpd.refreshSteps=Integer.parseInt(txtRefresh.getText());      if(localpd.refreshSteps<=0)return;      localpd.coop_u=Double.valueOf(txtCoop.getText()).doubleValue();      if(localpd.coop_u>1||localpd.coop_u<0)return;      localpd.m_value=Double.valueOf(txtValue.getText()).doubleValue();      if(localpd.m_value<=1)return;      localpd.NeiType=choice1.getSelectedIndex();      localpd.reinit();      localpd.running=true;      localpd.pausebutton.setLabel("停止");      //终止对话框      this.hide();      this.dispose();  }  void btnCancel_actionPerformed(ActionEvent e) {            //让主程序继续运行并终止自己            localpd.running=true;            localpd.pausebutton.setLabel("停止");            this.hide();            this.dispose();  }  void btnDefault_actionPerformed(ActionEvent e) {      reset();  }  void txtValue1_textValueChanged(TextEvent e) {      //保持两个文本框的数值一致      String s1=txtValue1.getText();      String s2=txtValue.getText();      if(!s1.equals(s2))        txtValue.setText(s1);  }  void txtValue_textValueChanged(TextEvent e) {       //保持两个文本框的数值一致      String s1=txtValue1.getText();      String s2=txtValue.getText();      if(!s1.equals(s2))         txtValue1.setText(s2);  }  void this_windowClosing(WindowEvent e) {      localpd.running=true;      localpd.pausebutton.setLabel("停止");      this.hide();      this.dispose();  }}

⌨️ 快捷键说明

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