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

📄 ifsrule.java

📁 关于细胞自动机的例子
💻 JAVA
字号:
package leaf;import java.awt.*;import java.awt.event.*;/** * Title:        leaf * Description: * Copyright:    Copyright (c) 2003 * Company:      http://agents.yeah.net * @author keatskk@sina.com * @version 1.0 */public class IFSRule extends Frame {  IFSControl localIFSControl;  int widthall=700;  int width=600;  int height=300;  int scale=30;  int pointX1=0;  int pointY1=0;  int pointX2=0;  int pointY2=0;  int pointChange=0;//  double offsetX=0;//  double offsetY=0;//  double sclX=0;//  double sclY=0//  double scl=0;//  double rotate=0;// double strecth=0;  Panel panMakeRule;  Label lblMake[];  TextField txtMakeRule[];  TextField txtMakeP;  Button btnDel;  Button btnAccept;  Color c=new Color(164, 223, 101);//画笔颜色  Color white=new Color(255,255,255);  Color yellow=new Color(255,250,14);  Color blue=new Color(14,212,255);  Color bg=new Color(0,0,0);//背景颜色  public IFSRule(IFSControl rl) {    super("制定规则");    localIFSControl=rl;    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception {    panMakeRule = new Panel();    setLayout(new BorderLayout());    //panMakeRule.setLayout(new BorderLayout());    GridBagLayout layout = new GridBagLayout();    panMakeRule.setLayout(layout);//    btnDel = new Button("清空");    btnAccept = new Button("确定");    this.addWindowListener(new java.awt.event.WindowAdapter() {      public void windowClosing(WindowEvent e) {        this_windowClosing(e);      }    });    this.setBackground(bg);    panMakeRule.setBackground(Color.lightGray);    btnDel.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        btnDel_actionPerformed(e);      }    });    btnAccept.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        btnAccept_actionPerformed(e);      }    });    this.add("South",panMakeRule);    Label lblMakeRule = new Label("Rule"+localIFSControl.NoRule+"  ");    Label lblMakeP = new Label("    P:");    txtMakeP = new TextField(2);    lblMake = new Label [6];    txtMakeRule = new TextField [6];    for(int i=0;i<6;i++){      lblMake[i]=new Label();      txtMakeRule[i]= new TextField(2);      txtMakeRule[i].setText(localIFSControl.txtRule[i][localIFSControl.NoRule].getText());    }    txtMakeP.setText(localIFSControl.txtP[localIFSControl.NoRule].getText());    for(int i=0;i<6;i++){      txtMakeRule[i].addTextListener(new java.awt.event.TextListener() {        public void textValueChanged(TextEvent e) {          txtMakeP_textValueChanged(e);        }      });    }    lblMake[0].setText("a:");    lblMake[1].setText("  b:");    lblMake[2].setText("  c:");    lblMake[3].setText("  d:");    lblMake[4].setText("  e:");    lblMake[5].setText("  f:");//Grid画表格      GridBagConstraints constraints = new GridBagConstraints();      constraints.weightx = 0.0;      constraints.weighty = 0.0;  //    constraints.fill = GridBagConstraints.BOTH;      constraints.gridwidth = 1;      constraints.gridheight = 1;      //            constraints.gridx=0;constraints.gridy=0;      layout.setConstraints(btnDel, constraints);      panMakeRule.add(btnDel);//,new GridBagConstraints(0,i,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));      constraints.gridx=1;constraints.gridy=0;      layout.setConstraints(lblMakeRule, constraints);      panMakeRule.add(lblMakeRule);//,new GridBagConstraints(1,i,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));      for(int i=0;i<6;i++){      for(int j=0;j<6;j++){        constraints.gridx=i*2+2;constraints.gridy=0;        layout.setConstraints(lblMake[i], constraints);        panMakeRule.add(lblMake[i]);//,new GridBagConstraints(i*2+2,j,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));        constraints.gridx=i*2+3;constraints.gridy=0;       layout.setConstraints(txtMakeRule[i], constraints);        panMakeRule.add(txtMakeRule[i]);//,new GridBagConstraints(i*2+3,j,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));        //RulePanel.add(lbl[j]);      }      }      constraints.gridx=14;constraints.gridy=0;      layout.setConstraints(lblMakeP, constraints);      panMakeRule.add(lblMakeP);//,new GridBagConstraints(14,i,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));      constraints.gridx=15;constraints.gridy=0;      layout.setConstraints(txtMakeP, constraints);      panMakeRule.add(txtMakeP);      constraints.gridx=16;constraints.gridy=0;      layout.setConstraints(btnAccept,constraints);      panMakeRule.add(btnAccept);//Grid画表格结束  }  public void paint (Graphics g) {      g.clearRect(0,0,700,350);      g.setColor(bg);      g.fillRect(0,0,700,350);      g.setColor(white);      g.drawLine((widthall-width)/2,height/2,widthall-(widthall-width)/2,height/2);//横坐标      g.drawLine(widthall/2,0,widthall/2,height);//纵坐标      g.setColor(blue);      g.drawLine(widthall/2,height/2,widthall/2+scale,height/2);      g.drawLine(widthall/2+scale,height/2,widthall/2+scale,height/2-scale);      g.drawLine(widthall/2+scale,height/2-scale,widthall/2,height/2-scale);      g.drawLine(widthall/2,height/2-scale,widthall/2,height/2);      g.setColor(c);      pointX1=(int)(widthall/2+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY1=(int)(height/2-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      pointX2=(int)(widthall/2+Double.valueOf(txtMakeRule[0].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY2=(int)(height/2-Double.valueOf(txtMakeRule[3].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      //txtMakeRule[i]      g.drawLine(pointX1,pointY1,pointX2,pointY2);      pointX1=(int)(widthall/2+Double.valueOf(txtMakeRule[0].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY1=(int)(height/2-Double.valueOf(txtMakeRule[3].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      pointX2=(int)(widthall/2+Double.valueOf(txtMakeRule[0].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[1].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY2=(int)(height/2-Double.valueOf(txtMakeRule[3].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[4].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      g.drawLine(pointX1,pointY1,pointX2,pointY2);      pointX1=(int)(widthall/2+Double.valueOf(txtMakeRule[0].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[1].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY1=(int)(height/2-Double.valueOf(txtMakeRule[3].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[4].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      pointX2=(int)(widthall/2+Double.valueOf(txtMakeRule[1].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY2=(int)(height/2-Double.valueOf(txtMakeRule[4].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      g.drawLine(pointX1,pointY1,pointX2,pointY2);      pointX1=(int)(widthall/2+Double.valueOf(txtMakeRule[1].getText()).doubleValue()*scale+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY1=(int)(height/2-Double.valueOf(txtMakeRule[4].getText()).doubleValue()*scale-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      pointX2=(int)(widthall/2+Double.valueOf(txtMakeRule[2].getText()).doubleValue());      pointY2=(int)(height/2-Double.valueOf(txtMakeRule[5].getText()).doubleValue());      g.drawLine(pointX1,pointY1,pointX2,pointY2);  }  void this_windowClosing(WindowEvent e) {      this.hide();      this.dispose();  }  public void actionPerformed(ActionEvent e) {//,Object arg){    //if ( e instanceof TextField) {//instanceof实例            //String button = (String) arg;        //for (int i=0;i<6;i++){        //  if (e.equals(txtMakeRule[i])){        //    repaint();        //  }        //}  // return true;  //} // else{return false;}  }  void txtMakeP_textValueChanged(TextEvent e) {    repaint();  }  void btnDel_actionPerformed(ActionEvent e) {    for(int i=0;i<6;i++){      txtMakeRule[i].setText("");    }    txtMakeP.setText("");  }  void btnAccept_actionPerformed(ActionEvent e) {    for (int i=0;i<6;i++){      localIFSControl.txtRule[i][localIFSControl.NoRule].setText(txtMakeRule[i].getText());    }    localIFSControl.txtP[localIFSControl.NoRule].setText(txtMakeP.getText());    this.hide();    this.dispose();  }}

⌨️ 快捷键说明

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