• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        java繪制一個成交量的統計圖

        java繪制一個成交量的統計圖

        更新時間:2022-05-14 文章作者:未知 信息來源:網絡 閱讀次數:

        在前面,我用多線程寫了一個繪制了股票K線圖的程序.這里我再通過繪制一個成交量的統計圖說明對鼠票事件的應用.這里我們要傳入幾個參數:
        <applet code="sellhis.class" Archive="sellhis.jar" width="640" height="400">
        <Param name="itemmonth" value="200201">
        <Param name="itemcode" value="00002,00014,00019,00023,00041,00102,00113,00114,
        00129,00132,00142,00146,00179,00203,00213,00223,00341">
        <Param name="itemval" value="272950,193950,1015600,142700,1618500,671650,
        2453300,630150,28375,1827660,7700,75700,27375,3375600,47500,17500,17500">
        <Param name="itempce" value="219,156,817,114,2302,540,1974,507,22,
        1471,6,60,22,4717,38,114,14">
        </applet>
        查看演示
        sellhis.java源程序如下:
        import java.awt.*;
        import java.applet.*;
        import java.awt.font.*;
        import java.awt.event.*;
        import java.io.*;
        import java.lang.*;
        import java.util.*;



        public class sellhis extends Applet{
          static int Len;
          int leftMargine=50;
          int rightMargine=20;
          int topMargine=80;
          int buttomMargine=20;
          int width,height,w,h;
          int minStickLength=3;  //坐標的短刻度
          int majStickLength=8;   //坐標的長刻度
          int minStick=10;
          int majStick;
          String title;
          String xTitle="股票代碼";
          String xCode[];
          float yData[],xPce[];
          String MaxPce;
          boolean Mouse_Move;
          int x0,y0,X,Y,hx,hy;
          Label label[]=new Label[3];
          boolean mouse_move=false;
          public void init() {
            width=this.getBounds().width;
            height=this.getBounds().height;
            w=width-leftMargine-rightMargine;
            h=height-topMargine-buttomMargine;
            setSize(width,height);
            Color bc=new Color(229,229,229);
            setBackground(bc);
            setLayout(null);
            for(int I=0;I<3;I++){
              label[I]=new Label();
              label[I].setForeground(Color.blue);
              this.add(label[I]);
              if(I==0)
                label[I].reshape(75,topMargine-25,60,15);
              if(I==1)
                label[I].reshape(230,topMargine-25,80,15);
              if(I==2)
                label[I].reshape(505,topMargine-25,60,15);
            }
            try{
              title=getTitle(getParameter("itemmonth"));
            }
            catch(Exception e){
              System.out.println("Param itemmonth error!");
           System.out.println(e);
        }
            try{
              xCode=Subicode(getParameter("itemcode"));
              Len=xCode.length;
              hx=w/Len;
            }
            catch(Exception e){
              System.out.println("Param itemcode error!");
           System.out.println(e);
        }
            try{
              yData=Substr(getParameter("itemval"));
            }
            catch(Exception e){
              System.out.println("Param itemval error!");
           System.out.println(e);
        }
            try{
              xPce=Substr(getParameter("itempce"));
              MaxPce=getMaxVal(xPce);
              majStick=Integer.parseInt(MaxPce.substring(0,1))+2; //取最大pce的最大整數
            }
            catch(Exception e){
              System.out.println("Param itempce error!");
           System.out.println(e);
        }
            try{
              addMouseListener(new MouseAdapter(){
                public void mouseReleased(MouseEvent evt){//檢測釋放鼠標按鍵事件
                  setCursor(Cursor.getDefaultCursor());
                  Point ioc=evt.getPoint();
                  X=ioc.x;         //把當前座標傳遞給另一線程
                  Y=ioc.y;
                  //repaint();
                }
              });
           addMouseMotionListener(new MouseMotionAdapter(){
                public void mouseDragged(MouseEvent evt){
                  Point ioc=evt.getPoint();
                  if((ioc.x>leftMargine & ioc.x< w+leftMargine) & (ioc.y >topMargine & ioc.y< h+topMargine))
                    setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
                  else
                    setCursor(Cursor.getDefaultCursor());
                }
                public void mouseMoved(MouseEvent evt){   //檢測鼠標移動事件
                  Point ioc=evt.getPoint();
                  X=ioc.x;
                  Y=ioc.y;
                  Graphics gten;
                  gten=getGraphics();
                  gten.setXORMode(Color.white);
                  gten.setColor(Color.blue);
                  int Axsis;


                  if(ioc.x >leftMargine & ioc.x< w+leftMargine & ioc.y>topMargine & ioc.y<h+topMargine){
                    try{
                       Axsis=(X-leftMargine)/hx;        //設定橫座標范圍
                        //在以下區域內,把鼠標當前橫座標處的各種股票參數顯示在相應的標簽上
                         label[0].setText(xCode[Axsis]);
                         label[1].setText(Float.toString(yData[Axsis]));
                         float pcent=(xPce[Axsis]/100);
                         label[2].setText(Float.toString(pcent));
                    }
                    catch(Exception err){
                    }
                    try{
                      if(y0 >topMargine & y0< h+topMargine)
                        gten.drawLine(leftMargine,y0,w+leftMargine,y0);
                      if(Y >topMargine & Y< h+topMargine)
                        gten.drawLine(leftMargine,Y,w+leftMargine,Y);
                      if(x0 >leftMargine & x0< w+leftMargine)
                        gten.drawLine(x0,topMargine,x0,h+topMargine);
                      if(X >leftMargine & X< w+leftMargine)
                        gten.drawLine(X,topMargine,X,h+topMargine);
                      x0=X;
                      y0=Y;
                    }
                    finally{
                      gten.dispose();
                    }
                  }
                }
              });
        }
        catch(Exception e)
        {
          System.out.println("sellhis construct add mouse listener error!");
          System.out.println(e);
        }
          }
          public void paint(Graphics g){
            try{
              g.drawString("股票代碼:",20,topMargine-15);
              g.drawString("賣空成交金額:",150,topMargine-15);
              g.drawString("賣空成交金額占總賣空成交金額%:",320,topMargine-15);



              g.drawRect(leftMargine,topMargine,w,h); //矩形方框



              int x0,y0,x1,y1,dy;
              int totalStick=(majStick-1)*minStick;
              x0=leftMargine;
              dy=h/((majStick-1)*minStick);
              for(int I=1;I<=totalStick;I++){
                y0=height-buttomMargine-I*dy;
                y1=y0;
                x1=x0-minStickLength;
                if(I%minStick==0){
                  x1=x0-majStickLength;
                  g.drawString(""+((I)/minStick)+"0%",x1-25,y0+5);    //y軸刻度數字
                }
                g.drawLine(x0,y0,x1,y1);  //y軸刻度標
              }
              for(int I=0;I<Len;I++){
                x0=leftMargine+I*hx;
                hy=(int)((xPce[I]/100)*(h/((majStick-1)*10)));
                y0=height-buttomMargine-hy;
                float pcent=(xPce[I]/100);
                Color pceCololr=new Color(153,0,153);
                g.setColor(pceCololr);
                g.setFont(new Font("Times New Roman",Font.PLAIN,11));
                g.drawString(Float.toString(pcent),x0,y0-5);//在柱狀圖上繪制%
                if(I%2==0)
                  g.setColor(Color.orange);
                else
                  g.setColor(Color.red);
                g.fillRect(x0,y0,hx,hy);  //繪制柱狀圖
                //g.setColor(Color.red);  //繪制股票代碼
                //g.setFont(new Font("Times New Roman",Font.PLAIN,10));
                //g.drawString(""+xCode[I],x0,height-topMargine+40);
              }
              Color titleColor=new Color(0,64,128);
              g.setColor(titleColor);
              g.setFont(new Font("monospaced",Font.BOLD,20));
              g.drawString(title,190,40);
            }
            catch(Exception e){
              System.out.println("sellhis paint error.");
              System.out.println(e);
            }
          }
          public static float[] Substr(String str){
            int I=0;
            StringTokenizer st = new StringTokenizer(str,",");
            int len=st.countTokens();
            float[] val=new float[len];
            while(st.hasMoreTokens()) {
              val[I]=Integer.parseInt(st.nextToken());
              I++;
            }
            return val;
          }
          public static String[] Subicode(String str){
            int I=0;
            StringTokenizer st = new StringTokenizer(str,",");
            int len=st.countTokens();
            String[] val=new String[len];
            while(st.hasMoreTokens()) {
              val[I]=st.nextToken();
              I++;
            }
            return val;
          }
          public static String getMaxVal(float[] Maxval){
            int I;
            float result;
            result=Maxval[0];
            for(I=0;I<Maxval.length;I++){
              if(result<Maxval[I])
                result=Maxval[I];
            }
            return Float.toString(result);
          }
          public String getTitle(String str){
            String title;
            title=str.substring(0,4)+"年"+str.substring(4,6)+"月賣空股票統計";
            return title;
          }
          public int getLeftMargine(){
            return leftMargine;
          }
          public int getButtomMargine(){
            return buttomMargine;
          }
          public void setLeftMargine(int leftMargine){
            this.leftMargine=leftMargine;
          }
          public void setButtomMargine(int buttomMargine){
            this.buttomMargine=buttomMargine;
          }
        }

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲欧洲日韩极速播放| 亚洲人成综合在线播放| 日本特黄特色AAA大片免费| 成年人免费观看视频网站| 亚洲一卡二卡三卡| 青苹果乐园免费高清在线| 亚洲av乱码一区二区三区香蕉| 亚洲欧洲免费无码| 亚洲欧好州第一的日产suv| 日本一道一区二区免费看| 亚洲国产高清国产拍精品| 国产免费看插插插视频| 黄色a三级免费看| 中文字幕亚洲日韩无线码| 99久久精品毛片免费播放| 亚洲av网址在线观看| 91热成人精品国产免费| 亚洲一卡2卡3卡4卡5卡6卡| 日韩免费一区二区三区| 免费夜色污私人影院网站电影| 中文字幕第一页亚洲| 亚洲美女视频免费| 亚洲日韩国产欧美一区二区三区| 免费人成在线观看网站品爱网日本 | 久久久WWW免费人成精品| 亚洲精品乱码久久久久66| 99视频在线免费| 亚洲乱妇熟女爽到高潮的片| gogo全球高清大胆亚洲| 美女视频黄的免费视频网页| 在线aⅴ亚洲中文字幕| 亚洲国产精品成人AV无码久久综合影院 | 韩国免费一级成人毛片| 美女18一级毛片免费看| 久久亚洲国产中v天仙www | 亚洲一级免费视频| 蜜桃传媒一区二区亚洲AV| 亚洲人成网77777亚洲色| 1000部啪啪未满十八勿入免费| 美女裸免费观看网站| 亚洲精品视频在线|