知识大全 java绘制一个成交量的统计图

Posted

篇首语:能够说服别人最好的方式,其实就是你始终坚持在做的事。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java绘制一个成交量的统计图相关的知识,希望对你有一定的参考价值。

  在前面 我用多线程写了一个绘制了股票K线图的程序 这里我再通过绘制一个成交量的统计图说明对鼠票事件的应用 这里我们要传入几个参数:         >     >     >      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= ;  int rightMargine= ;  int topMargine= ;  int buttomMargine= ;  int width height w h;  int minStickLength= ; //坐标的短刻度  int majStickLength= ; //坐标的长刻度  int minStick= ;  int majStick;  String title;  String xTitle= 股票代码 ;  String xCode[];  float yData[] xPce[];  String MaxPce;  boolean Mouse_Move;  int x y X Y hx hy;  Label label[]=new Label[ ];  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( );  setBackground(bc);  setLayout(null);  for(int I= ;I< ;I++)  label[I]=new Label();  label[I] setForeground(Color blue);  this add(label[I]);  if(I== )  label[I] reshape( topMargine );  if(I== )  label[I] reshape( topMargine );  if(I== )  label[I] reshape( topMargine );    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( ))+ ; //取最大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   try  Axsis=(X leftMargine)/hx; //设定横座标范围  //在以下区域内 把鼠标当前横座标处的各种股票参数显示在相应的标签上  label[ ] setText(xCode[Axsis]);  label[ ] setText(Float toString(yData[Axsis]));  float pcent=(xPce[Axsis]/ );  label[ ] setText(Float toString(pcent));    catch(Exception err)    try  if(y >topMargine & y < h+topMargine)  gten drawLine(leftMargine y w+leftMargine y );  if(Y >topMargine & Y< h+topMargine)  gten drawLine(leftMargine Y w+leftMargine Y);  if(x >leftMargine & x < w+leftMargine)  gten drawLine(x topMargine x h+topMargine);  if(X >leftMargine & X< w+leftMargine)  gten drawLine(X topMargine X h+topMargine);  x =X;  y =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( 股票代码: topMargine );  g drawString( 卖空成交金额: topMargine );  g drawString( 卖空成交金额占总卖空成交金额%: topMargine );        g drawRect(leftMargine topMargine w h); //矩形方框        int x y x y dy;  int totalStick=(majStick )*minStick;  x =leftMargine;  dy=h/((majStick )*minStick);  for(int I= ;I<=totalStick;I++)  y =height buttomMargine I*dy;  y =y ;  x =x minStickLength;  if(I%minStick== )  x =x majStickLength;  g drawString( +((I)/minStick)+ % x y + ); //y轴刻度数字    g drawLine(x y x y ); //y轴刻度标    for(int I= ;I   x =leftMargine+I*hx;  hy=(int)((xPce[I]/ )*(h/((majStick )* )));  y =height buttomMargine hy;  float pcent=(xPce[I]/ );  Color pceCololr=new Color( );  g setColor(pceCololr);  g setFont(new Font( Times New Roman Font PLAIN ));  g drawString(Float toString(pcent) x y );//在柱状图上绘制%  if(I% == )  g setColor(Color orange);  else  g setColor(Color red);  g fillRect(x y hx hy); //绘制柱状图  //g setColor(Color red); //绘制股票代码  //g setFont(new Font( Times New Roman Font PLAIN ));  //g drawString( +xCode[I] x height topMargine+ );    Color titleColor=new Color( );  g setColor(titleColor);  g setFont(new Font( monospaced Font BOLD ));  g drawString(title );    catch(Exception e)  System out println( sellhis paint error );  System out println(e);      public static float[] Substr(String str)  int I= ;  StringTokenizer st = new StringTokenizer(str );  int len=untTokens();  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= ;  StringTokenizer st = new StringTokenizer(str );  int len=untTokens();  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[ ];  for(I= ;I   if(result   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;   cha138/Article/program/Java/JSP/201311/19647

相关参考

绘制二次回路接线图应注意什么?

  为了避免混淆应注意:  (8)属于同一个元件的线圈和触点采用相同的文字标号。  (9)接线图中各元件都要按照国家统一规定的图形符号和文字标号。  (10)在接线图中所有的开关电器和继电器的触点都要

燃气工程竣工图绘制有那些要求?

1、竣工图平面位置的测量定点必须按三角定点法及平行移动法进行测量绘制,尺寸标注密度不得大于50米并且在走向变化较大、三通、弯头等地方适当增加标注密度。  2、文字高度不小于3.5mm。  3、平面图绘

OX图的绘制方法

OX图的绘制方法OX图(点数图)诞生一百多年了,它的名气和普及程度远不及条形图与阴阳线。但至今仍旧有不少交易员参考OX图制定交易计划,经过一百多年的发展,它的使用方法也更加灵活多变。OX图的绘制方法与

电气控制图绘制规则是什么?

  原理图一般分主电路和辅助电路两部分:主电路就是从电源到电动机大电流通过的路径。辅助电路包括控制电路、照明电路、信号电路及保护电路等,由继电器和接触器的线圈、继电器的触点、接触器的辅助触点、按钮、照

电气控制图绘制规则是什么?

  原理图一般分主电路和辅助电路两部分:主电路就是从电源到电动机大电流通过的路径。辅助电路包括控制电路、照明电路、信号电路及保护电路等,由继电器和接触器的线圈、继电器的触点、接触器的辅助触点、按钮、照

知识大全 绘制整洁的UML图 明晰才能被人采纳

绘制整洁的UML图明晰才能被人采纳  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  不管您喜欢与否

OBV指标的优缺点有哪些?

OBV指标的优缺点有哪些?优点(1)OBV线系依据成交量的变化统计绘制而成,因此OBV线属于技术性分析,与属于经济性的基本分析无关。(2)OBV线为股市短期波动的重要判断方法,但运用OBV线应配合股价

成交量的概述

成交量的概述成交量是指在某一时段内具体的交易数。它可以在分时图中绘制,包括日线图、周线图、月线图甚至是5分钟、30分钟60分钟图中绘制。市场成交量的变化反映了资金进出市场的情况,成交量是判断市场走势的

下列关于现金流量图的绘制规则的说法,正确的是()。

下列关于现金流量图的绘制规则的说法,正确的是()。A.对投资人来说,时间轴上方的箭线表示现金流出B.箭线长短与现金流量的大小没有关系C.箭线与时间轴的交点表示现金流量发生的时点D.时间轴上的点通常表示

下列关于现金流量图的绘制规则的说法,正确的是()。

下列关于现金流量图的绘制规则的说法,正确的是()。A.对投资人来说,时间轴上方的箭线表示现金流出B.箭线长短与现金流量的大小没有关系C.箭线与时间轴的交点表示现金流量发生的时点D.时间轴上的点通常表示