亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? curveshow.java

?? 人工股市(Artificial Stock Market
?? JAVA
字號:
package asm;import java.awt.event.*;import java.util.Vector;import java.awt.*;/** * Title:        Artificial Stock Market * Description:  人工模擬股市(來源:SFI的Swarm版本)的Java版本 * Copyright:    Copyright (c) 2003 * Company:      http://agents.yeah.net * @author jake * @version 1.0 */public class CurveShow extends Frame implements Runnable{  Panel view = new Panel();  Thread runner1;//定義獨立線程  Graphics gra;//在一個面板view上畫圖  int cycles=100;//圖中顯示的橫坐標數目  int cyclemax;//主程序中定義的歷史數據最大長度  int originx=40;//畫圖區域原點的坐標  int originy=20;  int type;  public int nAgentIndex=0;  AsmModel local;//主程序的本地拷貝  Choice choicelen = new Choice();  Label label1 = new Label();  Label label2 = new Label();  Choice choiceItem1 = new Choice();  Label label3 = new Label();  Choice choiceItem2 = new Choice();  Label lblAgent = new Label();  Choice choiceAgent = new Choice();  Label label5 = new Label();  Label label6 = new Label();  public CurveShow(AsmModel pd,int type1) {    super("數據走向...");    local=pd;    type=type1;    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  private void jbInit() throws Exception {    this.setLayout(null);    view.setBackground(Color.white);    view.setBounds(new Rectangle(6, 26, 537, 316));    this.setBackground(Color.gray);    this.addWindowListener(new java.awt.event.WindowAdapter() {      public void windowOpened(WindowEvent e) {        this_windowOpened(e);      }      public void windowClosing(WindowEvent e) {        this_windowClosing(e);      }    });    choicelen.setBounds(new Rectangle(69, 355, 94, 21));    choicelen.addItemListener(new java.awt.event.ItemListener() {      public void itemStateChanged(ItemEvent e) {        choicelen_itemStateChanged(e);      }    });    for(int i=0;i<40;i++){       choicelen.addItem(Integer.toString((i+1)*100));    }    if(type==0){      choiceItem1.addItem("股票價格");      choiceItem2.addItem("股票價格");      choiceItem1.addItem("股息");      choiceItem2.addItem("股息");      choiceItem1.addItem("風險中性價格");      choiceItem2.addItem("風險中性價格");      choiceItem2.addItem("無");      choiceItem1.select(0);      choiceItem2.select(2);    }else if(type==1){      for(int i=0;i<local.asmModelParams.numBFagents;i++){        choiceAgent.addItem(Integer.toString(i));      }      choiceItem1.addItem("股票需求量");      choiceItem1.addItem("總財富");      choiceItem1.addItem("股票份額");      choiceItem1.addItem("現金量");      choiceItem1.addItem("規則平均特定度");      choiceItem1.addItem("預測量");      choiceItem1.addItem("預測偏差");      choiceItem1.addItem("預測系數a");      choiceItem1.addItem("預測系數b");      choiceItem2.addItem("股票需求量");      choiceItem2.addItem("總財富");      choiceItem2.addItem("股票份額");      choiceItem2.addItem("現金量");      choiceItem2.addItem("規則平均特定度");      choiceItem2.addItem("預測量");      choiceItem2.addItem("預測偏差");      choiceItem2.addItem("預測系數a");      choiceItem2.addItem("預測系數b");      choiceItem2.addItem("無");      choiceItem1.select(0);      choiceItem2.select(choiceItem2.getItemCount()-1);    }    label1.setText("顯示長度:");    label1.setBounds(new Rectangle(4, 360, 60, 12));    label2.setText("觀察項目1:");    label2.setBounds(new Rectangle(171, 342, 70, 21));    choiceItem1.setBounds(new Rectangle(239, 345, 122, 18));    label3.setText("觀察項目2:");    label3.setBounds(new Rectangle(170, 369, 72, 15));    choiceItem2.setBounds(new Rectangle(239, 367, 122, 18));    lblAgent.setText("選擇智能體編號:");    lblAgent.setBounds(new Rectangle(435, 344, 107, 18));    choiceAgent.setBounds(new Rectangle(436, 363, 94, 17));    label5.setText("藍色線");    label5.setBounds(new Rectangle(364, 345, 47, 17));    label6.setText("紅色線");    label6.setBounds(new Rectangle(364, 365, 40, 18));    this.add(view, null);    this.add(label2, null);    this.add(choiceItem1, null);    this.add(label3, null);    this.add(choiceItem2, null);    this.add(choicelen, null);    this.add(label1, null);    if(type==1){        this.add(lblAgent, null);        this.add(choiceAgent, null);    }    this.add(label5, null);    this.add(label6, null);    this.pack();    this.addWindowListener(new java.awt.event.WindowAdapter() {      public void windowClosing(WindowEvent e) {        this_windowClosing(e);      }    });  }  void this_windowClosing(WindowEvent e) {    this.hide();    this.dispose();  }  void btnClose_actionPerformed(ActionEvent e) {    this.hide();    this.dispose();  }   void this_windowOpened(WindowEvent e) {    gra=view.getGraphics();    cyclemax=WorldVariants.cycleMax;    repaint();    if(runner1==null){      runner1=new Thread(this);      runner1.start();    }  }  public void paint(Graphics g) {    /**@todo: Override this java.awt.Component method*/    //畫圖函數    Vector history=new Vector();    double value1max=100;    double value1min=-100;    double value2max=100;    double value2min=-100;    double valuemax=100;    double valuemin=-100;    boolean noneItem,isDrawn;    String sName="";    if(type==0){        history=local.world.Histories;    }else if(type==1){        nAgentIndex=choiceAgent.getSelectedIndex();        Agent ag=(Agent)local.agentList.elementAt(nAgentIndex);        history=ag.History;    }    int width=517-originx-25;    int height=316-originy;    //int step=localpd.steps;    int step=local.modelTime;    int nStart=0;    int nEnd=cycles;    int size=history.size();    if(step-cycles>0){        //計算需要繪制的歷史數據數組中的啟示索引        nStart=step-cycles;    }    //清空畫圖區域    gra.clearRect(0,0,517,316);    //設定原點坐標    int x=0,y=0,y0=height-originy;    //對設定的要畫的橫坐標點數循環    noneItem=false;   for(int i=0;i<cycles;i++){      //當前點坐標      isDrawn=true;      int x1=(int)((i*width)/cycles);      double value1=0;      double value2=0;      if((i+nStart)%cyclemax<size){        if(type==0){          WorldVariants wv=(WorldVariants)history.elementAt((i+nStart)%cyclemax);          switch(choiceItem1.getSelectedIndex()){          case 0:            value1=wv.price;            if(i==0)sName="價格";            value1max=local.asmModelParams.maxprice;            value1min=local.asmModelParams.minprice;            break;          case 1:            value1=wv.dividend;            if(i==0)sName="股息";            value1max=local.asmModelParams.maxdividend;            value1min=local.asmModelParams.mindividend;            break;          case 2:            if(i==0)sName="股息/利息";            value1=wv.risk_neutral;            value1max=local.asmModelParams.maxprice;            value1min=local.asmModelParams.minprice;            break;          }          switch(choiceItem2.getSelectedIndex()){          case 0:            value2=wv.price;            value2max=local.asmModelParams.maxprice;            value2min=local.asmModelParams.minprice;            break;          case 1:            value2=wv.dividend;            if(i==0)sName+="-股息";            value2max=local.asmModelParams.maxdividend;            value2min=local.asmModelParams.mindividend;            break;          case 2:            if(i==0)sName+="-股息/利息";            value2=wv.risk_neutral;            value2max=local.asmModelParams.maxprice;            value2min=local.asmModelParams.minprice;            break;          case 3:            noneItem=true;            value2=value1min;            value2max=value1max;            value2min=value1min;          }        }else if(type==1){          AgentVariants agv=(AgentVariants)history.elementAt((i+nStart)%cyclemax);          if(i==0)sName=choiceItem1.getSelectedItem();          switch (choiceItem1.getSelectedIndex()){          case 0:            value1=agv.demand;            value1max=local.bfParams.maxbid;            value1min=-value1max;            break;          case 1:            value1=agv.wealth;            value1max=local.asmModelParams.initialcash*10 + local.asmModelParams.maxprice*local.asmModelParams.initholding;            value1min=0;            break;          case 2:            value1=agv.position;            value1max=local.asmModelParams.initholding;            value1min=0;            break;          case 3:            value1=agv.cash;            value1max=local.asmModelParams.initialcash*10;            value1min=0;            break;          case 4:            value1=agv.avspecificity;            value1max=local.bfParams.condbits;            value1min=0;            break;          case 5:            value1=agv.forecast;            value1max=local.asmModelParams.maxprice;            value1min=local.asmModelParams.minprice;            break;          case 6:            value1=agv.realDeviation;            value1max=local.asmModelParams.maxprice-local.asmModelParams.minprice;            value1min=-value1max;            break;          case 7:            value1=agv.pdcoeff;            value1max=local.bfParams.a_max;            value1min=0;            break;          case 8:            value1=agv.offset;            value1max=local.bfParams.b_max;            value1min=local.bfParams.b_min;            break;          }          switch (choiceItem2.getSelectedIndex()){          case 0:            value2=agv.demand;            value2max=local.bfParams.maxbid;            value2min=-value2max;            break;          case 1:            value2=agv.wealth;            value2max=local.asmModelParams.initialcash*10 + local.asmModelParams.maxprice*local.asmModelParams.initholding;;            value2min=0;            break;          case 2:            value2=agv.position;            value2max=local.asmModelParams.initholding;            value2min=0;            break;          case 3:            value2=agv.cash;            value2max=local.asmModelParams.initialcash*10;            value2min=0;            break;          case 4:            value2=agv.avspecificity;            value2max=local.bfParams.condbits;            value2min=0;            break;          case 5:            value2=agv.forecast;            value2max=local.asmModelParams.maxprice;            value2min=local.asmModelParams.minprice;            break;          case 6:            value2=agv.realDeviation;            value2max=local.asmModelParams.maxprice-local.asmModelParams.minprice;            value2min=-value1max;            break;          case 7:            value2=agv.pdcoeff;            value2max=local.bfParams.a_max;            value2min=0;            break;          case 8:            value2=agv.offset;            value2max=local.bfParams.b_max;            value2min=local.bfParams.b_min;            break;          case 9:            noneItem=true;            value2=value1min;            value2max=value1max;            value2min=value1min;          }         if(i==0&&!noneItem)sName+="-"+choiceItem2.getSelectedItem();        }      }else{        isDrawn=false;        value1=valuemin;        value2=valuemin;      }      valuemax=value1max;      valuemin=value1min;      if(!noneItem){        if(valuemax<value2max)valuemax=value2max;        if(valuemin>value2min)valuemin=value2min;      }      if(valuemax==valuemin)valuemin=valuemax-100;      int y1=(int)(height*(value1-valuemin)/(valuemax-valuemin));      //繪制合作者比例      if(y1<=0){        y1=1;      }else if(y1>=height){        y1=height;      }      if(isDrawn){        gra.setColor(Color.blue);        gra.drawLine(x+originx,height-y,x1+originx,height-y1);      }      //繪制不合作者比例      int y2=(int)(height*(value2-valuemin)/(valuemax-valuemin));      if(y2<=0){        y2=1;      }else if(y2>=height){        y2=height;      }      if(isDrawn&&!noneItem){        gra.setColor(Color.red);        gra.drawLine(x+originx,height-y0,x1+originx,height-y2);      }      //前一點的坐標      x=x1;      y=y1;      y0=y2;    }    //畫坐標軸及其說明文字    gra.setColor(Color.black);    gra.drawLine(originx,height,width+originx,height);    gra.drawLine(originx,height,originx,0);    gra.drawString("時間",width+originx,height);    gra.drawString(sName,originx-35,originy/2);    this.setTitle(sName+"(曲線圖)");    for(int i=0;i<10;i++){        int x3=(int)(i*width/10)+originx;        int y3=height;        gra.drawLine(x3,y3,x3,y3-2);        String txt;        if(step>cycles){          txt=Integer.toString((int)(step-cycles+i*cycles/10));        }else{          txt=Integer.toString((int)(i*cycles/10));        }        gra.drawString(txt,x3,y3+12);    }    for(int i=0;i<=9;i++){        int x3=originx;        int y3=(int)((10-i)*height/10);        gra.drawLine(x3,y3,x3+2,y3);        float num=(float)((double)(i*(valuemax-valuemin))/(double)10+valuemin);        String txt=Float.toString(num);        if(txt.length()>=5)txt=txt.substring(0,5);        gra.drawString(txt,x3-30,y3+5);    }    super.paint(g);  }   void choicelen_itemStateChanged(ItemEvent e) {    cycles=(choicelen.getSelectedIndex()+1)*100;    repaint();  }  void btnRefresh_actionPerformed(ActionEvent e) {    repaint();  }  public void stop() {    if (runner1!=null)    {      // running = false;        runner1.stop();       runner1=null;    }  }  public void run()   {    while(true){        repaint();        try{Thread.sleep(1000);}catch(InterruptedException e){};    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久老虎| 亚洲香肠在线观看| 久久综合色播五月| 日韩三级.com| 日韩欧美一级在线播放| 日韩欧美美女一区二区三区| 51精品久久久久久久蜜臀| 91精品国产综合久久精品性色 | 国产精品美女久久久久久2018| 久久久精品中文字幕麻豆发布| 久久综合狠狠综合久久综合88| 久久精品在线免费观看| 中文字幕精品—区二区四季| 亚洲图片欧美激情| 亚洲欧美一区二区三区孕妇| 亚洲一区在线看| 日本91福利区| 激情五月婷婷综合网| 狠狠色丁香婷婷综合| 成人综合在线观看| 色诱视频网站一区| 欧美精品乱码久久久久久| 日韩免费在线观看| 久久久久久电影| 亚洲色欲色欲www| 国产一区二区三区视频在线播放| 国产suv精品一区二区883| 91香蕉视频mp4| 欧美日韩另类国产亚洲欧美一级| 欧美一级免费大片| 国产欧美精品在线观看| 亚洲综合一区在线| 久久精品久久99精品久久| 国产91精品一区二区麻豆网站| 91日韩一区二区三区| 3d成人动漫网站| 中文字幕va一区二区三区| 亚洲一区在线视频| 国产一区二区精品久久91| 99麻豆久久久国产精品免费| 欧美三级中文字幕| 久久无码av三级| 一区二区国产盗摄色噜噜| 人人爽香蕉精品| 97se亚洲国产综合自在线不卡 | 久久综合九色综合欧美98| 国产精品国产a| 七七婷婷婷婷精品国产| 成人精品电影在线观看| 欧美久久久一区| 国产精品免费久久久久| 天天色图综合网| 大桥未久av一区二区三区中文| 欧美日韩第一区日日骚| 中文字幕乱码亚洲精品一区| 视频一区二区中文字幕| av一本久道久久综合久久鬼色| 制服丝袜在线91| 亚洲男人电影天堂| 国产成人自拍高清视频在线免费播放| 91国偷自产一区二区三区观看| 精品国产乱码91久久久久久网站| 亚洲免费在线播放| 国产高清亚洲一区| 日韩一级片在线播放| 依依成人综合视频| 国产1区2区3区精品美女| 91精品欧美久久久久久动漫| 亚洲精品亚洲人成人网在线播放| 国产一区二区三区四区五区入口| 欧美日本乱大交xxxxx| 亚洲欧洲成人精品av97| 激情久久五月天| 欧美日韩另类一区| 亚洲黄色小说网站| 欧美剧情电影在线观看完整版免费励志电影| 精品成人免费观看| 视频在线观看91| 欧美日韩一区中文字幕| 亚洲视频你懂的| 成人午夜又粗又硬又大| 久久蜜桃香蕉精品一区二区三区| 亚洲成年人网站在线观看| 色综合网站在线| 国产精品久久久久久久久动漫| 国产呦萝稀缺另类资源| 欧美一区二区观看视频| 午夜av电影一区| 精品视频在线免费| 亚洲一卡二卡三卡四卡| 91免费在线视频观看| 亚洲欧洲三级电影| 成人av电影在线播放| 中文字幕在线一区免费| 岛国一区二区在线观看| 久久久91精品国产一区二区精品| 精品一区二区三区av| 日韩一本二本av| 麻豆成人av在线| 欧美一区二区网站| 日本午夜精品视频在线观看 | 69堂成人精品免费视频| 偷拍一区二区三区| 宅男噜噜噜66一区二区66| 日日骚欧美日韩| 日韩三级视频中文字幕| 激情综合色综合久久综合| 欧美精品一区二区三区蜜桃视频 | 精品国产乱码久久久久久免费| 秋霞av亚洲一区二区三| 91精品国产91久久综合桃花| 奇米色777欧美一区二区| 日韩免费视频一区二区| 国产一区二区中文字幕| 国产精品乱子久久久久| 色综合久久天天| 亚洲国产cao| 日韩你懂的在线观看| 国产成人免费视频精品含羞草妖精| 国产欧美日韩卡一| 91在线porny国产在线看| 亚洲一级在线观看| 日韩欧美综合一区| 国产成a人无v码亚洲福利| 亚洲欧美日韩在线播放| 欧美高清你懂得| 国产专区欧美精品| 成人欧美一区二区三区在线播放| 91小视频免费观看| 日韩黄色免费电影| 久久久久久久综合色一本| av高清不卡在线| 视频在线观看国产精品| 久久久久久日产精品| 91浏览器在线视频| 奇米色一区二区三区四区| 欧美激情一区二区三区蜜桃视频| 91美女视频网站| 日本vs亚洲vs韩国一区三区二区 | 日韩毛片视频在线看| 欧美伦理电影网| 粉嫩av一区二区三区粉嫩 | 国产高清不卡二三区| 亚洲精品自拍动漫在线| 亚洲三级电影网站| 欧美一区二区三区电影| 波多野洁衣一区| 蜜臀99久久精品久久久久久软件| 国产欧美一区二区三区在线老狼| 日本韩国视频一区二区| 精品一区在线看| 一区二区三区在线观看网站| 精品久久久久久久久久久久久久久| 成人动漫精品一区二区| 男女男精品网站| 亚洲日本乱码在线观看| 久久综合色鬼综合色| 欧美色窝79yyyycom| 成人精品小蝌蚪| 久久精品国产99国产精品| 亚洲另类一区二区| 国产亚洲精品福利| 91精品国产一区二区三区| 99在线热播精品免费| 狠狠色狠狠色合久久伊人| 亚洲大片免费看| 自拍偷拍国产精品| 国产丝袜美腿一区二区三区| 欧美精品高清视频| 91免费版在线| 大陆成人av片| 国产美女久久久久| 美女久久久精品| 亚洲福利一区二区三区| 国产精品久久久久影院老司| 精品欧美乱码久久久久久1区2区| 精品1区2区3区| 99精品视频一区| 国产精品资源网| 另类的小说在线视频另类成人小视频在线 | 天堂av在线一区| 亚洲老司机在线| 国产精品国产a级| 日本一区二区三区久久久久久久久不| 3d成人动漫网站| 欧美另类videos死尸| 一本大道av一区二区在线播放| 国产宾馆实践打屁股91| 免费在线看成人av| 偷拍与自拍一区| 午夜伊人狠狠久久| 亚洲午夜精品网| 亚洲地区一二三色| 夜色激情一区二区| 亚洲一区在线观看视频| 一区二区三区在线免费| 一级做a爱片久久| 亚洲自拍都市欧美小说| 一区二区三区成人在线视频| 日韩理论电影院|