服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java实现股票走势图


  java的出现,给证券行业发展带来了新的机遇.这里我以java写的一个走势力图为例:

package charts;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;
import java.lang.*;

public class charts extends applet {
static int len;
static int xo,yo; //坐标原点(xo,yo)
static int x2,y2; //x轴顶点坐标(xo,yo)
static final int x1=50,y1=30; //y轴顶点坐标(xo,yo)
static int yunit,xunit;
static float unit;
static string xstr,ystr; //接收从html传进x轴y轴的数据
static int[] xval;
static int[] yval;
static float[] y=new float[5];
static int xmax,xmin;
static float ymax,ymin;
static int[] yvalue;
static int[] xvalue;
public void init() {
//setbackground(color.gray);
int width=this.getbounds().width;
int height=this.getbounds().height;
setsize(width,height);
xstr=getparameter("xvalue");
ystr=getparameter("yvalue");
xval=substr(xstr);
yval=substr(ystr);
len=xval.length;
yvalue=new int[len];
xvalue=new int[len];
xo=50;
yo=height-30;
x2=width-30;
y2=yo;
yunit=(height-100)/4;
xunit=(width-100)/len;
ymax=getmaxval(yval);
ymin=getminval(yval);
float tempy=((float)ymax-(float)ymin)/4;
y[0]=ymin; //y轴坐标刻度
y[1]=ymin+tempy;
y[2]=ymin+tempy*2;
y[3]=ymin+tempy*3;
y[4]=ymax;
unit=(float)(yunit*4)/((float)ymax-(float)ymin);
yvalue=gety(yunit,tempy,ymin,yval);
}
public static int[] gety(int unit,float diff,float ymin,int[] value){
int i=0; //unit=yunit; diff=temp; ymin=ymin
int[] result=new int[len];
for(i=0;i<len;i++)
result[i]=(int)(yo-((4*unit)/(diff*4))*(value[i]-ymin));
return result;
}
public void paint(graphics g){
g.setcolor(color.red);//坐标原点(30,290)
g.drawline(xo,yo,x1,y1); //y轴
int i;
for(i=0;i<5;i++){
g.drawline(xo,yo-yunit*i,xo-5,yo-yunit*i); //y
g.drawstring(float.tostring(y[i]),xo-38,yo-yunit*i);
}
g.drawline(x1,y1,x1-5,y1+5); //y轴左箭头
g.drawline(x1,y1,x1+5,y1+5); //y轴右箭头

g.drawline(xo,yo,x2,y2); //x轴
//system.out.println("");
for(i=0;i<len;i++){
g.drawline(xo+xunit*i,yo,xo+xunit*i,yo+5); //x
//system.out.print((xo+xunit*i)+" ");
g.drawstring(integer.tostring(xval[i]),xo+xunit*i-6,yo+20);
}
g.drawline(x2,y2,x2-5,y2-5); //x轴左箭头
g.drawline(x2,y2,x2-5,y2+5); //x轴右箭头

g.setcolor(color.black);
g.drawstring("y",x1-20,y1);
g.drawstring("x",x2,y2+20);
for(i=0;i<len-1;i++)
g.drawline(xo+xunit*i,yvalue[i],xo+xunit*(i+1),yvalue[i+1]);
}
public static int[] substr(string str){
int i=0;
stringtokenizer st = new stringtokenizer(str,",");
int len=st.counttokens();
int[] val=new int[len];
while(st.hasmoretokens()) {
val[i]=integer.parseint(st.nexttoken());
i++;
}
return val;
}
public static int getmaxval(int[] maxval){
int i,result;
result=maxval[0];
for(i=0;i<maxval.length;i++){
if(result<maxval[i])
result=maxval[i];
}
return result;
}
public static int getminval(int[] minval){
int i,result;
result=minval[0];
for(i=0;i<minval.length;i++){
if(result>minval[i])
result=minval[i];
}
return result;
}
}

扫描关注微信公众号