知识大全 用Java绘制K线图

Posted 布局

篇首语:正确的道路是这样:吸取你的前辈所做的一切,然后再往前走。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用Java绘制K线图相关的知识,希望对你有一定的参考价值。

用Java绘制K线图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Java语言中的Applet(Java小程序)和Application(Java应用程序)是在结构和功能上都存在很大差异的两种不同的编程方式 Applet应用于Web页上 可做出多姿多彩的页面特效 给网站增辉添色 Application则与其他编程语言(如VB VC)一样 可编制各种应用程序     本文要讨论的是第一种情况 在Web页上用Java Applet绘制K线图     K线是股市行情分析中的一种参数指标 用股票每日的开盘价 最高价 最低价 收盘价及成交量等数据进行作图 配合五日 十日均线便可反映出一个阶段内该支股票的涨跌走势     Java Applet所做的K线图多应用于证券类型的网站 以方便网上股民的分析操作 不过由于我国网速的关系 目前有些证券类网站把K线图做成了图片以节省下载的时间 当然 其绘制K线所用的工具(Java Applet)及绘制方法还是相同的     在编写绘制K线的Java Applet时 有几处关键问题要解决 即 )多线程的使用 )布局管理器的选择 )数据输入 输出流的应用 )设置 监听鼠标与键盘事件     下面通过一个实例 来详细阐述整个编程过程和方法 《查看演示》     一 使用多线程     一个完整的Java Applet包含四个方法 Init() Start() Stop() Destroy()(即 初始化 开始 停止 清除) 构成一个完整的生命周期 其运行次序也是由上而下顺序执行     在绘制K线图的过程中 除了要绘制窗体及代表股票升降的阴线 阳线矩形外 还要监听鼠标事件并同时绘制一个自由移动的 十字 游标 来定位显示所检索股票每日的各种价格数值(如开盘价 收盘价等) 这时 为了避免闪烁和减少重新计算的等待时间 除了重绘跟随鼠标移动的 十字 游标外 对页面的布局及阴线 阳线矩形等不进行重绘 这就需要应用多线程来完成该项任务      .关于多线程的一些基本概念     多线程实际上就是启动另一个进程 其运行的过程独立于主程序之外 并从主程序的Start()方法载入 由Run()方法调用执行 实现多线程的方法有两种 即 创建Thread类的子类(类的继承)和实现runnable接口     为便于使用 Java把所有有关线程的功能封装成Java类库中的一个类 Java lang Thread 通过这个类 Java可以创建 控制和终止线程 完成有关多线程的所有操作     在Java语言中 一个子类只能继承一个超类(父类) 由于我们所要编写的Java Applet是应用于网页中的 首先必须继承浏览器类(java applet) 因此 在本例中我们通过实现runnable接口的方法来实现多线程 实现的语句如下     public class StockApplet extends java applet Applet implements Runnable      .多线程的应用     首先 在Init()方法中对要创建的线程(M_pointThread)进行定义及初始化   Thread M_pointThread=null;    然后 在Start()和Stop()方法中加入以下代码     //当打开浏览器页面开始载入Java Applet代码时 执行start()方法   public void start()     if (M_pointThread==null) //如果线程尚未产生    M_pointThread=new Thread(this); //则创建一个新线程  M_pointThread start(); //启动该线程        //在当前页面关闭或转向其他Web页面时     调用stop()方法 以释放系统资源  public void stop()    if (M_pointThread!=null) //如果线程尚在运行       M_pointThread stop(); //停止该线程     M_pointThread=null; //释放线程所占资源         .编写线程运行的代码     public void run()      M_graphics=getGraphics();  M_graphics setXORMode(Color white); //采用异或方法绘制 十字 游标  while(true)        try          if(MouseMove==true) //侦测到鼠标的移动后 执行以下代码   //当鼠标位于以下区域(Java Applet布局)内时 执行画线操作   if(x > && x < )M_graphics drawLine(x x );   if(y > && y < )M_graphics drawLine( y y );     if(X > && X< )M_graphics drawLine(X X );       if(Y > && Y< )M_graphics drawLine( Y Y);   MouseMove=fase;   x =X; //传递当前座标参数   y =Y;       catch(NullPointerException npe) //捕获可能出现的异常        二 布局管理器     本例中的Java Applet运行时 要在页面上Java Applet的运行区域内绘制相应的 标签 来显示不同的数值 并要加入一个 文本框 来接收输入的股票代码 对这些 标签 和 文本框 位置及大小的设定 便属于布局管理的应用范畴     Java语言中提供的布局管理器种类有 边界式布局 卡片式布局 流式布局和网格式布局等 各有不同的特点 可根据实际需要选用 但有最大自由设计空间的是 无布局管理器 ——即不使用任何布局格式 而通过手工方式添加组件到页面布局的绝对位置上 本例中使用的便是 无布局管理器     在使用 无布局管理器 时 首先要作出声明 即     setLayout(null);    然后用reshape()方法指定组件的具体位置和尺寸     基本语句如下所示     Label label =new Label(); //定义标签  this add(label );   //把标签加入布局管理器  label reshape( ); //在指定位置绘制标签    对于多个标签和文本框 参照此格式添加即可     三 输入 输出数据流     Java Applet在客户端浏览器上运行时 要从服务器端读取股票的相关数据进行做图 这就涉及到Java数据流的运用     Java io包提供了多个用于与各种I/O设备交换信息的类 其最顶层的两个类便是输入流类(InputStream)和输出流类(OutputStream)     为了便于实现 在本例中我们先在服务器端把股票数据库(如 show dbf)中的有关字段写入一文本文件中(其格式为 第一行为股票的汉字名称 以后每一行内包括 开盘日期 开盘价 最高价 最低价 收盘价 成交量) 并以该支股票的代码作为文件名(如 txt) 然后 再用Java Applet从服务器端的文本文件中读取数据 这样 就把对服务器端数据库的访问转化为对文件的I/O操作 实现的语句如下   URL urlc=new URL( +FileName+ txt );   BufferedReader bis=new BufferedReader(new InputStreamReader(urlc openStream()));    注 第一条语句中的为在本机执行调试操作的URL地址 在上传到服务器上后要做相应的修改 FileName为要读取的文本文件名   第二条语句定义了读取输入数据流的方法     四 监听键盘及鼠标事件     在Java Applet小程序中 单击按钮 键入文本 使用鼠标或执行任何与界面相关的动作时 就发生一个事件 小程序就会作出适当的反应     在本例中 我们通过使用action()方法来获得Java Applet小程序运行时所发生的事件 语句格式如下     public boolean action(Event evt Object arg)    FileName=text getText(); //提取文本框中输入的参数  ReadData();  //调用读数据流数据的方法  return true; //处理完毕 不需要其他方法再做处理      上面的action()方法中含有两个参数 一个是Event类的一个对象evt 另一个是Object类的一个对象arg Event对象告诉我们发生了哪种事件 而Object对象将进一步告诉我们有关该事件的情况 每当有Event监听的事件发生时 Java Applet便自动调用该action()方法     至此 在掌握了上述编程中的一些要点后 我们便可以成功地编制出一个完整的绘制K线的Java Applet小程序了(完整的源代码下载)     五 编制HTML文档(l)     程序编制完成后 另外要做的是设置在Web页面上调用Java Applet的页面 即编制HTML文档 l文档的示例代码如下     < HEAD >  < TITLE >股票K线图< /TITLE >  < /HEAD >        < /body >  < /HTML >    在< APPLET >< /APPLET >标签对内 是对Java Applet小程序的调用代码 其中的StockApplet class是经编译后生成的class文件 codeBase指向的是class文件所存放的路径 如果class文件与HTML文档存放在同一目录下 则可以省略这一项     至此 编制Java Applet小程序的工作便全部完成     在个人计算机上进行调试时 首先要安装个人Web服务 然后 把StockApplet class与HTML文档一起拷贝到本机的WWW服务目录下(如 C:\\Inetpub\\root\\) 打开浏览器 在地址栏内输入 回车 进行测试操作     调试通过后 便可上传至服务器投入运行了 cha138/Article/program/Java/JSP/201311/19286

相关参考

K线图图解

K线图图解其记录方法如下:(如图所示)1、日K线是根据股价(指数)一天的走势中形成的四个价位即:开盘价,收盘价,最高价,最低价绘制而成的。收盘价高于开盘价时,则开盘价在下收盘价在上,二者之间的长方柱用

知识大全 怎样用30分钟K线图买卖操作股票

怎样用30分钟K线图买卖操作股票  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!怎样用30分钟K线图买

知识大全 股票k线图,怎么看

股票k线图,怎么看?用手指点击K线图,会出现一个十字,十字下面出现的日期就是你所要看的。股票K线图怎么看?K线图分析法简介K线图这种图表源处于日本,被当时日本米市的商人用来记录米市的行情与价格波动,后

知识大全 怎么样在CAD中画出K线图,通过读取股票资料,谁能给点帮助,用程式实现

怎么样在CAD中画出K线图,通过读取股票资料,谁能给点帮助,用程式实现!  以下文字资料是由(历史新知网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 股票k线图基础知识,怎么看k线图,k线图基础知识

股票k线图基础知识,怎么看k线图,k线图基础知识?K线图(信息来源:通金魔方网站)又名蜡烛图,是将每天股价变动绘成K线图,借此分析股价的变动与变动的形态、股价变动前因后果,以及在长时间里出现的股价波峰

知识大全 股票k线图怎么看

股票k线图怎么看一、K线图简介K线图最早是日本德川幕府时代大阪的米商用来记录当时一天、一周或一月中米价涨跌行情的图示法,后被引入股市。K线图据股价(指数)一天的走势中形成的四个价位即:开盘价,收盘价,

知识大全 怎样识别股票K线图

怎样识别股票K线图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!怎样识别股票K线图通过识别k线图来

知识大全 K线图怎么看,股票走势图

K线图怎么看,股票走势图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!K线图怎么看,股票走势图K线

分析从K线图及技术指标看个股的起涨信号

从K线图及技术指标看个股的起涨信号:个股起涨前夕,K线图、技术指标及盘面上有一些明显的特征。善于总结与观察,可望在个股起涨前夕先“上轿”,等待主力的拉抬。这些起涨信号大致有以下几种:从个股走势及盘面上

知识大全 帮忙解释下下面这些股票K线图的名词?

帮忙解释下下面这些股票K线图的名词?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!帮忙解释下下面这