楊冰+李若楠+付維維+胡士義
摘 要:分析了遼陽地區(qū)的自然地理環(huán)境條件。通過Java程序開發(fā)出的軟件以抽象窗口工具包(AWT)為基礎(chǔ),使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。該軟件的開發(fā)在本地區(qū)氣象防災(zāi)減災(zāi)工作中發(fā)揮了重要的作用。
關(guān)鍵詞:Java;Access;數(shù)據(jù)庫;數(shù)據(jù)傳輸
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-6835(2014)17-0143-01
1 系統(tǒng)開發(fā)的背景和意義
由于遼陽地區(qū)的自然地理?xiàng)l件十分復(fù)雜,東部山區(qū)山丘、河谷眾多,強(qiáng)降水極易使小流域突發(fā)山洪、滑坡和泥石流等災(zāi)害,這勢必會造成重大的人員傷亡和經(jīng)濟(jì)、財(cái)產(chǎn)損失。因此,采取各種有效措施和手段加強(qiáng)局地山洪和地質(zhì)災(zāi)害的監(jiān)測、預(yù)報(bào)預(yù)警和防治能力建設(shè)已經(jīng)成為了遼陽地區(qū)氣象部門和國土部門急需解決的重要難題。目前,國土規(guī)劃設(shè)計(jì)院可以根據(jù)山洪易發(fā)區(qū)氣象自動(dòng)站實(shí)況資料繪制出準(zhǔn)確性高、可視化強(qiáng)的山洪地質(zhì)災(zāi)害實(shí)況圖,怎樣將山洪地質(zhì)災(zāi)害氣象監(jiān)測數(shù)據(jù)、預(yù)報(bào)預(yù)警資料實(shí)時(shí)傳輸至國土規(guī)劃設(shè)計(jì)院是急需解決的重要問題。如果能夠開發(fā)一款系統(tǒng)解決該問題,對保障人民群眾的生命財(cái)產(chǎn)安全、有效避免或減輕災(zāi)害損失、改善民生和維護(hù)社會穩(wěn)定、支撐經(jīng)濟(jì)社會可持續(xù)發(fā)展等具有十分重要的現(xiàn)實(shí)意義。
Java是目前世界上公認(rèn)的最可靠、先進(jìn)的程序開發(fā)語言。Java具有很多優(yōu)點(diǎn)——簡單、安全、小巧、健全、面向?qū)ο?、靜態(tài)類型,而且有強(qiáng)大的標(biāo)準(zhǔn)庫支持,文件的讀取、保存操作,快捷、方便的數(shù)據(jù)庫接口,圖形操作界面的實(shí)現(xiàn)都有Java.Swing等使用方便的包,它完全可以滿足該系統(tǒng)的功能要求。結(jié)合一種快速開發(fā)的IDE,比如Eclipse,采用一種方便、快捷、簡單、易用的數(shù)據(jù)庫開發(fā)工具,比如Access,可以高效率地將軟件開發(fā)出來。也就是說,針對該系統(tǒng)的開發(fā),Java語音是最適合的,也是最具優(yōu)勢的語言開發(fā)環(huán)境。
2 主頁面設(shè)計(jì)
軟件的主頁面是直接面對用戶的,要想設(shè)計(jì)出簡單明了、操作性強(qiáng)的主頁面,需要利用Java中的Swing插件。Swing是一個(gè)用于開發(fā)Java應(yīng)用程序用戶界面的開發(fā)工具包。針對Swing插件的特點(diǎn),將主頁面分為菜單欄和日志顯示兩大部分。在程序菜單欄部分主要有文件、數(shù)據(jù)源配置、郵箱設(shè)置、事件點(diǎn)配置和幫助等5個(gè)方面的功能板塊,為了方便用戶操作,在菜單下方設(shè)計(jì)了2個(gè)按鈕,單擊“播放”或“停止”按鈕即可實(shí)現(xiàn)服務(wù)啟動(dòng)等功能。
3 菜單欄的設(shè)計(jì)與實(shí)現(xiàn)
3.1 文件板塊
文件板塊中包括服務(wù)的啟動(dòng)和停止功能,此部分比較簡單,調(diào)用基本的sart、stop、exit就可以實(shí)現(xiàn)。同時(shí)要注意的是,菜單下快捷按鈕可以實(shí)現(xiàn)同樣的功能,但是需要處理按鈕圖片。
3.2 數(shù)據(jù)源配置板塊
該板塊是系統(tǒng)中最重要的部分,它負(fù)責(zé)調(diào)用數(shù)據(jù)庫中實(shí)況資料的配置。利用Java調(diào)用氣象自動(dòng)站實(shí)況數(shù)據(jù)時(shí),需要將其連接至資料存放的數(shù)據(jù)庫中,利用數(shù)據(jù)庫調(diào)用命令編程。該功能的設(shè)計(jì)讓用戶可以根據(jù)個(gè)人需求手動(dòng)設(shè)置數(shù)據(jù)庫參數(shù),并非直接寫入后臺運(yùn)行程序中,使用起來非常方便。
3.3 郵箱設(shè)置板塊
因?yàn)闅庀蟛块T與國土部門的網(wǎng)絡(luò)不同,所以,調(diào)取的氣象實(shí)況數(shù)據(jù)都是通過郵箱傳輸?shù)?。Java Mail是利用現(xiàn)有的郵件賬戶發(fā)送郵件的工具,Java郵件發(fā)送的過程為:①構(gòu)建1個(gè)繼承自javax.mail.Authenticator的具體類,并重寫里面的getPasswordAuthentication()方法。此類是用作登錄、校驗(yàn)的,以確保發(fā)送者對該郵箱有發(fā)送的權(quán)利。②構(gòu)建1個(gè)properties文件,在該文件中存放SMTP服務(wù)器地址等參數(shù)。③通過構(gòu)建的properties文件和javax.mail.Authenticator具體類創(chuàng)建1個(gè)javax.mail.Session。Session的創(chuàng)建就相當(dāng)于郵箱登錄,這樣剩下的自然就是新建郵件。④構(gòu)建郵件內(nèi)容一般是javax.mail.internet.MimeMessage對象,并指定發(fā)送人、收信人、主題、內(nèi)容等。⑤使用javax.mail.Transport工具類發(fā)送郵件。
3.4 時(shí)間點(diǎn)配置板塊
定時(shí)上傳數(shù)據(jù),自行設(shè)置延時(shí)時(shí)間,以分鐘為單位,例如設(shè)置10,即代表每過整點(diǎn)10 min后便自動(dòng)下載一次。同時(shí),在頁面框下方添加計(jì)時(shí)器功能,可以實(shí)時(shí)顯示W(wǎng)indows本地時(shí)間,方便用戶實(shí)時(shí)查看。
3.5 幫助板塊
該板塊是用于編寫作者和軟件版本信息、用戶操作使用說明文檔的。
4 日志顯示部分設(shè)計(jì)
Java Logging API封裝在JDK1.6.0的java.util.Logging 包中,它的產(chǎn)生便于最終用戶、系統(tǒng)管理員分析日志記錄,為軟件的開發(fā)、調(diào)試和維護(hù)提供便利的手段。它可以捕獲操作系統(tǒng)平臺和執(zhí)行程序的安全故障、配置錯(cuò)誤、執(zhí)行瓶頸和(或)Bug等數(shù)據(jù)信息,以純文本、XML或程序員自定的某種方式將其格式化成日志記錄,然后將其傳遞給內(nèi)存、系統(tǒng)輸出流、控制臺,并緩存和輸出文件、Sockets等多種系統(tǒng)資源。
5 結(jié)束語
自2012-06起,該系統(tǒng)已經(jīng)在遼陽市國土規(guī)劃設(shè)計(jì)院運(yùn)行,并成功繪制出了汛期地質(zhì)災(zāi)害易發(fā)區(qū)實(shí)況圖例,為本地區(qū)氣象防災(zāi)減災(zāi)工作的開展發(fā)揮了重要的作用。
參考文獻(xiàn)
[1]閻宏.JAVA與模式[M].北京:電子工業(yè)出版社,2002.
[2]何杰,夏榮霞.利用Java Swing實(shí)現(xiàn)數(shù)據(jù)庫結(jié)構(gòu)化查詢[J].計(jì)算機(jī)應(yīng)用,2001(03).
〔編輯:白潔〕
Using Java Environment Development of Meteorological Data
Transmission System of Live, Land and Geological Disasters
Yang Bing, Li Ruonan, Fu Weiwei, Hu Shiyi
Abstract: The natural geographical and environmental conditions Liaoyang region, through a Java program developed software Abstract Window Toolkit(AWT)as the basis, to make cross-platform application can use any pluggable look and feel. The software development has played an important role in this region of meteorological disaster prevention and mitigation work.
Key words: Java; Access; database; data transmission