<%@ page contentType="text/html; charset=gb2312"%> 用Java实现股票走势图
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
用Java实现股票走势图
     发布者: 发布时间:2006-07-04
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;
}
}
 
(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
一个关于JAVA绘制仿真立体饼图的程序源码,供大家参考
Java远程方法调用
JavaRMI入门实战
用RMI实现基于Java的分布式计算
用Java动态代理来创建包装器
纯java的Excel解决方案
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号