季 靜 周志強 程 姝 王森龍
(安徽省標準化研究院 信息中心,安徽 合肥 230051)
Swing是Java應用程序用戶界面開發包,是一個用于開發Java應用程序用戶界面的開發工具包。它以抽象窗口工具包(AWT)為基礎使跨平臺應用程序可以使用任何可插拔的外觀風格。Swing開發人員只需要用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創建優雅的用戶界面[4-5]。
制作基礎水平軸線時關注的是,在畫出刻度時,一定的寬度下,該圖表可以畫多少個刻度格。如圖1所示。

圖1 刻度格示意圖
該步驟總共分為六步:
(1)確定一個典型標志格式的抽象寬度,如圖2所示。模式“mm/dd/yy”是經典模型,因此本文使用它來計算標尺刻度的寬度。
(2)確定最大計數的標注將顯示在水平軸。
(3)設定變量hPoints以存儲臨時的標尺刻度樣本。
(4)使間隔為6/12/3的整數倍,所以每一個標尺刻度在水平軸顯示出來都是“整數”刻度。 (3:00,3:30,4:00…)如圖 3 所示。
(5)找到第一個明顯的“整數”索引(例如 刻度“03/11/2007 00:00”在日顯示模式下,“03:00”是小時視圖)如圖 4 所示。
(6)畫出每個步驟的標記并且遍歷所有的標記,如圖5所示。

圖2 確定抽象寬度

圖3 顯示整數刻度

圖4 尋找第一個整數索引
這里主要包含兩部分:在背景下“緩存”和設置全局“Cache”。
1.2.1 在背景下“緩存”
當用戶放大數據圖表來查看詳細的數據時,可以在新的時間范圍條件下過慮出舊的點,并立刻刷新圖表來顯示,并不用從服務器加載數據,因此,效果非常好。
(1)緩存舊的數據;
(2)定義存儲來保存被過慮過的數據;
(3)遍歷和過濾緩存的數據;
(4)重置圖表的數據源;
(5)對圖表進行刷新。
1.2.2 定義全局“Cache”
當滾動滑塊器的跨度的時候,由于所有的數據是歷史記錄,所以當保持數據的最長時間期限時,可以重復使用。
(1)定義一個參數記錄的最長時間戳。
(2)緩存最大時間段的數據源并且記錄開始和結束時間戳。

圖5 記錄開始與結束的時間戳
(3)當所選的時間在最大的范圍內(滑塊面板上的突出的時間范圍),重新使用這些數據。

圖6 數據重用
滑塊將會以月為單位顯示出讓用戶可以查看和自由選擇的一個很大的范圍。在初始化時,起點和終點(一段時間)已經被指定,所以它將計算在這一時間段內都包含哪些月份和這些月份里一共包含的天數。但是開始的日期也許不是一個月的第一天,需要得到起始時間附近的第一天的日期(mm/1/yy)。如果得到水平軸上的第一個數值范圍的偏移,之后的事情就很容易了。如圖7所示。

圖7 滑塊及其窗格
(1)確定這個時間段的比率和滑塊的寬度;
(2)確定第一個月的標記;
(3)確定第一個數值范圍的偏移量;
(4)確定每個月的每一步(天)。
此刻,通過指定的時間段的循環時間戳,可以得出滑塊及其尺度。
時延圖表在現實生活中應用非常廣泛,以火車票訂票系統為例,火車票網上訂票系統提供火車票查詢、網上訂票、鐵路知識和新聞公告、貨運信息查詢等等功能。其中最為便利的就是網上訂票,自助取票,讓自己的全程都有完整的計劃安排。
支撐訂票系統的一大功能就是時延圖表。眾所周知,大部分火車票是提前20天起售,也就是本月1號可以買20日的票,2號可以買21日的票以此類推,正常情況下一直都是可點選自今日起,20日內的車票,這就形成了一個動態的延時圖表,如何保證系統能夠順延下面的日期,這就需要上述圖表的支持。當特殊情況出現例如節假日前加車次,只需在后臺修改滑動窗口的大小,就能輕松控制車票起售及截止時間,十分方便。
隨著計算機系統的普及,未來一定會有更多的便民系統應用推出,為人們的生活提供便利。
[1]朱楊清.Excel2002幾個特殊圖表的制作及技巧[J].電腦學習,2003(5):46-47.
[2]宋莉.Excel繪制3Y軸圖表的制作方法[J].大連民族學院學報,2007(5):153.
[3]任斌.用Visio簡化《電子技術》課件中圖表的制作[J].華北航天工業學院學報,2006(16):85-86.
[4]蘇碧霞.探析JAVA Swing工具包在圖形用戶界面設計中的應用[J].信息與電腦(理論版),2013(5):143-144.
[5]張海越,范曦.使用Java Swing組件進行事件處理方法的分析與比較[J].軟件導刊,2013,12(6):26-27.