background image

Java

入门 用 Java 绘制 线图

  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 时,有几处关键问题要解决,即:

1

)多线程的使用;

2

)

布局管理器的选择;

3

)数据输入、输出流的应用;

4

)设置、监听鼠标与键盘事件。

  下面通过一个实例,来详细阐述整个编程过程和方法。
  一、使用多线程
  一个完整的 Java Applet 包含四个方法,Init()、Start()、Stop()、Destroy()(即:初始化、开
始、停止、清除),构成一个完整的生命周期,其运行次序也是由上而下顺序执行。
  在绘制 K 线图的过程中,除了要绘制窗体及代表股票升降的阴线、阳线矩形外,还要

监听鼠标事件并同时绘制一个自由移动的 十字 游标,来定位显示所检索股票每日的各
种价格数值(如开盘价、收盘价等);这时,为了避免闪烁和减少重新计算的等待时间,除了

重绘跟随鼠标移动的 十字 游标外,对页面的布局及阴线、阳线矩形等不进行重绘;这就
需要应用多线程来完成该项任务。
  

1

.关于多线程的一些基本概念:

  多线程实际上就是启动另一个进程,其运行的过程独立于主程序之外,并从主程序
的 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

  

2

.多线程的应用:

  首先,在 Init()方法中对要创建的线程(M_pointThread)进行定义及初始化:
  Thread M_pointThread=

null

;

  然后,在 Start()和 Stop()方法中加入以下代码:
 
  

//当打开浏览器页面开始载入 Java Applet 代码时,执行 start()方法