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