學(xué)習(xí)啦>實(shí)用范文>工作總結(jié)>實(shí)習(xí)工作總結(jié)>

java項(xiàng)目實(shí)訓(xùn)報(bào)告免費(fèi)范文模板

時(shí)間: 郭林0 分享

Java語(yǔ)言程序設(shè)計(jì)是大部分高校計(jì)算機(jī)專業(yè)的一門核心能力課,Java的實(shí)訓(xùn)操作是提高學(xué)生的實(shí)戰(zhàn)能力的重要途徑。本文是學(xué)習(xí)啦小編為大家整理的java學(xué)生參加實(shí)訓(xùn)的報(bào)告范文,僅供參考。

java實(shí)訓(xùn)報(bào)告范文篇一

一、實(shí)訓(xùn)目的

1.熟練掌握J(rèn)ava面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)知識(shí)。

2.熟練掌握J(rèn)ava中常用的Swing組件的使用方法。

3.熟練掌握J(rèn)ava程序中圖形用戶界面設(shè)計(jì)的方法。

4.熟練掌握使用JDBC操作數(shù)據(jù)庫(kù)的方法。

5.通過(guò)實(shí)訓(xùn),培養(yǎng)學(xué)生分析和解決實(shí)際問(wèn)題的能力,提高調(diào)試和分析應(yīng)用程序的能力,并為后續(xù)Java高級(jí)編程等專業(yè)課程的學(xué)習(xí)奠定良好的基礎(chǔ)。

二、課程設(shè)計(jì)報(bào)告內(nèi)容

2.1 實(shí)訓(xùn)內(nèi)容

本課程設(shè)計(jì)的題目是設(shè)計(jì)一個(gè)簡(jiǎn)化的圖書管理系統(tǒng)。該系統(tǒng)從圖書館管理人員的角度出發(fā),實(shí)現(xiàn)對(duì)圖書信息、讀者信息的瀏覽、添加、刪除和查詢,同時(shí)還可以對(duì)讀者借書、還書過(guò)程進(jìn)行操作和控制。設(shè)計(jì)內(nèi)容主要包括系統(tǒng)分析、數(shù)據(jù)庫(kù)、數(shù)據(jù)表的創(chuàng)建、系統(tǒng)各個(gè)窗體的布局及其編碼實(shí)現(xiàn)。

系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。該管理系統(tǒng)需要完成的基本功能主要有:

?用戶管理:主要包括用戶的添加、修改和刪除。

?讀者管理:主要包括讀者信息的瀏覽、添加、刪除和查詢。

?圖書管理:主要包括圖書信息的瀏覽、添加、刪除和查詢。

?借還書管理:主要包括借書、還書和續(xù)借。

2.2 實(shí)訓(xùn)設(shè)備或軟、硬件

硬件:PⅣ及以上性能的PC機(jī);

軟件:Windows 2000或Windows XP系統(tǒng);JDK工具;JCreator4.0環(huán)境

2.3 功能設(shè)計(jì)及思想

首先設(shè)計(jì)測(cè)試登錄窗口:Text.java

接下來(lái)設(shè)計(jì)LoginFrame.java(登錄窗口)、MainFrame(主窗體)

Addbookframe.java(圖書入庫(kù)窗口)、AddReaders.java(添加讀者窗口)、AddUserframe.java(添加用戶窗口)、Borrowframe.java(借書窗口)、Retumframe.java(還書窗口)、Queryframe.java(圖書查詢窗口)。

導(dǎo)入部分及實(shí)現(xiàn)的接口

三、結(jié)論

Java實(shí)訓(xùn)在不知不覺中就結(jié)束了,我感覺自己還有好多東西要學(xué),還有好多的東西不懂呢!這是我大學(xué)以來(lái)第3次實(shí)訓(xùn),每次實(shí)訓(xùn)我都感覺學(xué)到了好多東西!因?yàn)槭且惶斓酵淼牟婚g斷訓(xùn)練,所以記的會(huì)非常牢固。不像平時(shí)上課,每上兩次的理論課卻只有45分鐘的實(shí)際操作。在課上,有老師在前面演示我們都還能跟著做,可輪到我們獨(dú)立完成的時(shí)候,因?yàn)閷?shí)際操作的少,早就忘光了!我很感謝學(xué)校有實(shí)訓(xùn)這樣的安排,把我們這一學(xué)期學(xué)的東西系統(tǒng)的集中的進(jìn)行訓(xùn)練,對(duì)我們計(jì)算機(jī)水平的提高發(fā)揮著重要作用!還要感謝我們的侯老師,侯老師學(xué)識(shí)淵博,也很有耐心,即使老師講了很多遍的問(wèn)題,我們不會(huì),老師還是會(huì)走進(jìn)我們給我們耐心的指導(dǎo),還給我們講一些學(xué)習(xí)java的方法,讓我們知道自己在哪方面不足,需要加強(qiáng),也讓我們了解到哪些需要認(rèn)真的學(xué)習(xí),那些是重點(diǎn),不是沒(méi)有方向的亂學(xué)一通,什么也學(xué)不好!

經(jīng)過(guò)這次的實(shí)訓(xùn),我真真確確的感受到了這些開發(fā)工具能讓我們提高工作的效率,更直觀更便捷的切入主題。這次我們學(xué)習(xí)的是制作圖書信息管理系統(tǒng),由老師給我們指導(dǎo)。當(dāng)然,在學(xué)習(xí)的過(guò)程中并不是一帆風(fēng)順的,在這之中,因?yàn)橐僮鞯臇|西很多,有時(shí)錯(cuò)一步,后面的結(jié)果就無(wú)法顯示,而自己的耐心與細(xì)心又太差,根本檢查不出來(lái)是哪里出了錯(cuò)!這時(shí)候,侯老師都會(huì)耐心的過(guò)來(lái)幫助我,我很感謝侯老師也很感謝學(xué)校能安排這么優(yōu)秀的侯老師來(lái)教我們!只是,我們太頑皮,有很多東西老師講了我們也沒(méi)能記住,我想在此說(shuō)一句:老師,您辛苦了,下學(xué)期我們一定認(rèn)認(rèn)真真的好好學(xué)!

實(shí)訓(xùn)課是在學(xué)習(xí)與探索中度過(guò)的,短暫的15天實(shí)訓(xùn)是結(jié)束了,但其中讓我們學(xué)到了許多知識(shí),出現(xiàn)許多未知的為什么,如圖書管理數(shù)據(jù)庫(kù)的初步設(shè)置、JDBC和SQL Server服務(wù)器的連接、數(shù)據(jù)備份與還原的步驟,報(bào)表的設(shè)計(jì)與實(shí)現(xiàn)、如何設(shè)置數(shù)據(jù)源、通過(guò)ADO訪問(wèn)數(shù)據(jù)庫(kù)的方法、監(jiān)聽器、各種Java Swing組件的使用,綁定控件的屬性設(shè)置、如何實(shí)現(xiàn)Click事件、實(shí)現(xiàn)它的獲得方法、設(shè)置注冊(cè)焦點(diǎn)

監(jiān)聽器、獲取當(dāng)前日期、以及利用函數(shù)之間的相互轉(zhuǎn)換等等一系列的問(wèn)題,正是在老師和同學(xué)的共同努力之下,我才一步步把問(wèn)題解決了,最終完成了不可能完成的任務(wù)。

為期15天的實(shí)訓(xùn)課就這樣結(jié)束了,我發(fā)現(xiàn)我對(duì)java有了新的認(rèn)識(shí),以前只知道玩游戲、娛樂(lè)和簡(jiǎn)單的應(yīng)用。通過(guò)這次的實(shí)訓(xùn),我了解到,要真真正正的掌握這些開發(fā)工具還不是一件簡(jiǎn)單容易的事兒,但真正掌握后,它帶個(gè)我們的將是無(wú)窮的便捷與科技,我喜歡高端便捷的生活。我希望我能做計(jì)算機(jī)這個(gè)萬(wàn)能機(jī)器人的主人而不是奴隸,我會(huì)努力加油的!

通過(guò)實(shí)訓(xùn),我不僅鞏固了舊知識(shí),也學(xué)到了新的知識(shí),并且把所學(xué)的應(yīng)用到實(shí)際操作中,提高了我們的實(shí)際動(dòng)手能力和邏輯思維能力。也讓我們對(duì)軟件開發(fā)的流程有一定了解,并且對(duì)開發(fā)軟件有了一些初步的經(jīng)驗(yàn)。真正做到了學(xué)習(xí)與實(shí)際應(yīng)用相結(jié)合,真的很感謝老師為我們爭(zhēng)取的這次實(shí)訓(xùn)機(jī)會(huì),在這次實(shí)訓(xùn)期間我獲益匪淺。

最后,謝謝老師在實(shí)習(xí)過(guò)程給予的幫助!老師辛苦了!感謝學(xué)校,感謝老師給我的幫助,讓我的思想、技能又上了一個(gè)臺(tái)階!

四、結(jié)束語(yǔ)

《Java圖書管理系統(tǒng)項(xiàng)目》心得:

其實(shí)在學(xué)習(xí)圖書管理系統(tǒng)實(shí)訓(xùn)時(shí),我們就已經(jīng)開展了SQL的學(xué)習(xí),雖然它們之間存在不同,但是屬于同一種語(yǔ)言——計(jì)算機(jī)語(yǔ)言,但是實(shí)際上呢!它們的思想是不同的,JAVA只是一種面向?qū)ο笳Z(yǔ)言,而該項(xiàng)目實(shí)戰(zhàn)是教我們?nèi)绾沃谱饕粋€(gè)實(shí)用型的軟件,從實(shí)際出發(fā),一步一步的按照老師的規(guī)定進(jìn)行,按正規(guī)模式的方式制作軟件,從初期的項(xiàng)目分析,書寫可行性報(bào)告,到項(xiàng)目分工,最后開始書寫代碼,一天一天的寫編程日記,把每一天遇到或完成的事情記錄下來(lái),一步步設(shè)計(jì)完成自已的工作,想象自己是一個(gè)程序設(shè)計(jì)師,我主要完成界面及其代碼的設(shè)計(jì),而其中有很多東西是我們所不知道,正向所有編程人員一樣,我們是邊學(xué)邊作,而且書寫代碼的速度要很快,因?yàn)橐粋€(gè)項(xiàng)目不應(yīng)該在書寫代碼的方面浪費(fèi)時(shí)間,在這期間很訓(xùn)練人,因?yàn)槊刻鞂懘a時(shí),都寫的一身熱汗,著急呀!可是當(dāng)完成每天的任務(wù),而多完成時(shí)有很大的成就感了,這當(dāng)然是一個(gè)心里成就了,因?yàn)槲視簳r(shí)還沒(méi)有寫完這個(gè)程序了。說(shuō)真的,我寫完這個(gè)圖書信息管理系統(tǒng)時(shí),真的感覺很累了,不過(guò)又很輕松了,因?yàn)榻K于完成了,不過(guò)在看了其他同學(xué)設(shè)計(jì)的程序時(shí),心里也感到眾多不足,因?yàn)槲覀冊(cè)O(shè)計(jì)的程序,在判斷某些輸入資料時(shí),總是不嚴(yán)謹(jǐn),可能給日后用戶帶來(lái)很多不方便,而且在日后的維護(hù)工作會(huì)很大,這樣的程序,作為一個(gè)日后的程序員是不應(yīng)該出現(xiàn)的。

其中,對(duì)了SQL語(yǔ)言的使用是相當(dāng)?shù)闹匾模驗(yàn)闆](méi)有了SQL語(yǔ)言的支持,對(duì)數(shù)據(jù)庫(kù)表的操作,是根本無(wú)法實(shí)現(xiàn)的,對(duì)數(shù)據(jù)的增加、刪除、修改,都是一樣的。發(fā)現(xiàn)對(duì)于軟件來(lái)說(shuō),對(duì)數(shù)據(jù)庫(kù)的操作是至關(guān)重要的,因?yàn)橛泻芏嘬浖际沁@樣的,無(wú)論是什么都要對(duì)數(shù)據(jù)進(jìn)行操作,統(tǒng)計(jì)、分類、查詢、修改、刪除等,而正因?yàn)檫@樣,我在開始寫程序時(shí)的SQL基礎(chǔ)不好,所以出現(xiàn)在眾多難題,而翻書查尋便是經(jīng)常事情了,因?yàn)橹R(shí)用到時(shí)方恨少了,其實(shí)我感覺用JAVA設(shè)計(jì)圖形界面,是很費(fèi)勁的,嗯??用它作手機(jī)游戲看起來(lái)還不錯(cuò),或者用它網(wǎng)絡(luò)B/S、都是很好的,因?yàn)樗褪菫榱司W(wǎng)絡(luò)而生的??偟膩?lái)說(shuō),對(duì)于開展這樣的實(shí)用型項(xiàng)目,我個(gè)人認(rèn)為是非常重要的,這種實(shí)訓(xùn)突破了以前我的思維模式和慣性作法,以前對(duì)于程序來(lái)說(shuō),一開始就制作從來(lái)也不計(jì)劃,如果遇到了與想象中的不一樣的難題,就把這部分刪除掉,最近制作出來(lái)的程序,往往是功能不完善、功能不明確,沒(méi)有具體的規(guī)劃和文檔,到最后讓別人很難理解,自已也是很難弄明白。沒(méi)有一個(gè)良好的程序設(shè)計(jì)思想,當(dāng)然了學(xué)習(xí)項(xiàng)目實(shí)戰(zhàn)后,丟掉了那樣壞毛病,建立了良好的設(shè)計(jì)思想和編程過(guò)程。有很多不理解現(xiàn)在變成了現(xiàn)在的理解感謝,因?yàn)橥恍┱_的思想,總是一開始不被人接受,而到最近時(shí)才會(huì)被理解認(rèn)同,我也這樣認(rèn)為了。

通過(guò)這次的訓(xùn)練,掌握運(yùn)用了java程序設(shè)計(jì)的一些思想,了解了Java面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)知識(shí),熟練掌握了Java中常用的Swing組件的使用方法以及Java程序中圖形用戶界面設(shè)計(jì)的方法、使用JDBC操作數(shù)據(jù)庫(kù)的方法。初步了解了如何將復(fù)雜的問(wèn)題層層分析成較小的子問(wèn)題,實(shí)現(xiàn)Java編程的實(shí)際操作,掌握如何運(yùn)用Java解決一些常見的編程問(wèn)題,并學(xué)會(huì)、掌握分析解決問(wèn)題的方法,并運(yùn)用Java的程序結(jié)合自己對(duì)Java程序的初步認(rèn)識(shí)與理解進(jìn)行對(duì)照,查找自己與Java程序設(shè)計(jì)的偏差與不足之處,培養(yǎng)自己Java的思維。

本次實(shí)訓(xùn)項(xiàng)目通過(guò)分析并實(shí)現(xiàn)了圖書管理系統(tǒng)。本系統(tǒng)的設(shè)計(jì)讓大家了解如何根據(jù)實(shí)際問(wèn)題,分析功能需求,將復(fù)雜的問(wèn)題分析成子問(wèn)題,達(dá)到模塊化設(shè)計(jì)系統(tǒng)功能的目標(biāo)。同時(shí),可以利用這種方法制作通訊錄管理、課程管理、工資管理、圖書管理等小型管理系統(tǒng),此外,此次實(shí)訓(xùn)培養(yǎng)了我們java 的思維能力,讓我們對(duì)java有了更深層次的學(xué)習(xí)與理解,通過(guò)兩周的實(shí)訓(xùn)可以去解決一些簡(jiǎn)單的編程問(wèn)題,并對(duì)其出現(xiàn)的錯(cuò)誤能以與改正和討論同時(shí),也對(duì)以前自己朦朧而不解的問(wèn)題有了很好的理解,也知道了一些貴重的資料為何要施加密碼,如銀行卡。對(duì)java的理論有了更深的理解,同時(shí)也可以運(yùn)用本次的實(shí)訓(xùn)設(shè)置一些簡(jiǎn)單的系統(tǒng),

總之,我們從這次的實(shí)訓(xùn)中受益匪淺,我對(duì)這次實(shí)訓(xùn)還是比較滿意的,它使我學(xué)到了很多東西、學(xué)到了更深刻的知識(shí),為我以后的學(xué)習(xí)做了引導(dǎo),點(diǎn)明了方向,我相信在不遠(yuǎn)的未來(lái)定會(huì)有屬于我們自己的一片美好天空!漫漫長(zhǎng)路任我行,我需踏實(shí)腳下的路,一步步的前行。用現(xiàn)在的付出和汗水去勾畫未來(lái)美好的明天。

最后,在侯老師的細(xì)心輔導(dǎo)下,我有了很大的進(jìn)步,知識(shí)得到了擴(kuò)充,認(rèn)識(shí)得到了加深,也使得我的自學(xué)能力得到了很大的提高,在此,我向侯老師表示由衷地感謝。

老師您辛苦了!

java實(shí)訓(xùn)報(bào)告范文篇二

一、 課程設(shè)計(jì)名稱及主要內(nèi)容:

1、 課程設(shè)計(jì)名稱:

時(shí)鐘動(dòng)畫

2、 課程設(shè)計(jì)的主要內(nèi)容:

以下題目任選一個(gè):

(1)圖形界面類,如科學(xué)計(jì)算器、繪圖板、日歷、游戲程序等。

(2)動(dòng)畫類,編制功能較復(fù)雜、效果較好的Applet動(dòng)畫程序。

(3)數(shù)據(jù)處理類,如學(xué)生學(xué)籍、課程成績(jī)、圖書編目、倉(cāng)庫(kù)貨物等數(shù)據(jù)錄入查詢程序。

(4)其他類型,自選題目,須經(jīng)指導(dǎo)老師同意。

我所選的題目是動(dòng)畫類的Applet動(dòng)畫程序,主要任務(wù)是用Java程序設(shè)計(jì)一個(gè)時(shí)鐘動(dòng)畫。

二、 程序的設(shè)計(jì)思想和流程圖:

1、 設(shè)計(jì)思想:

現(xiàn)在的各種時(shí)鐘花樣百出,千奇百怪,功能亦是越來(lái)越先進(jìn)了。我很喜歡這些各式各樣的時(shí)鐘,所以希望自己也能設(shè)計(jì)出一個(gè)來(lái)。于是,我希望自己能夠用自己所學(xué)的Java知識(shí)設(shè)計(jì)出一個(gè)自己的時(shí)鐘動(dòng)畫,即使是最簡(jiǎn)單的,但我相信這是暫時(shí)的。只要我能夠努力學(xué)好Java知識(shí),將來(lái)一定能夠設(shè)計(jì)出更好更完美的時(shí)鐘動(dòng)畫。

2、 流程圖:

三、 程序介紹:

1、設(shè)計(jì)方法及步驟 :

? 題目分析:

根據(jù)《課程設(shè)計(jì)任務(wù)書》要求,分析題目,構(gòu)造出程序的基本思路(算法設(shè)計(jì))。畫出程序

設(shè)計(jì)結(jié)構(gòu)框圖。

? 構(gòu)造數(shù)據(jù)結(jié)構(gòu):

根據(jù)程序結(jié)構(gòu)框圖和題目分析結(jié)果(采用算法),構(gòu)造程序所用各項(xiàng)數(shù)據(jù),各種窗體及他們

之間的聯(lián)系。

? 構(gòu)造程序框架:

在窗體確定之后,根據(jù)算法設(shè)計(jì)出所用各個(gè)窗體之間的調(diào)用關(guān)系。

? 程序設(shè)計(jì):

①畫出程序功能框圖和結(jié)構(gòu)框圖;

②根據(jù)框圖設(shè)計(jì)程序;

③編譯程序調(diào)試程序,使程序可以使用;

④完備程序功能。

? 程序打包:

所設(shè)計(jì)程序匯總,將程序分類歸入相應(yīng)子目錄,完成程序所有設(shè)計(jì)要求。

2、完成情況:

經(jīng)過(guò)一系列的Java程序代碼的設(shè)計(jì),雖然過(guò)程中遇到了許多的問(wèn)題,但是最終解決了所有的問(wèn)題,準(zhǔn)確的設(shè)計(jì)出了時(shí)鐘動(dòng)畫,運(yùn)行情況正常。

3、類的關(guān)系:

“public class AnimatorDemo”是公共類,且是程序中的唯一的一個(gè)類。

4、構(gòu)造方法、成員變量和成員方法的功能說(shuō)明:

“Thread timer”用于顯示時(shí)鐘的線程;

“SimpleDateFormat formatter”用于格式化時(shí)間顯示; “String lastdate”用于保存當(dāng)前時(shí)間的字符串;

“Font clockFaceFont”用于設(shè)置顯示時(shí)鐘里面的數(shù)字的字體; “Date currentDate”用于顯示當(dāng)前時(shí)間;

“Color handColor”用于顯示時(shí)針、分針和表盤的顏色; “Color numberColor” 用于顯示秒針和數(shù)字的顏色; “public void init()”用于設(shè)計(jì)時(shí)鐘格式并捕捉異常;

“public void plotpoints(int x0, int y0, int x, int y, Graphics g)” 用于計(jì)算四分之一的圓弧;

“public void circle(int x0, int y0, int r, Graphics g”) 用Bresenham算法來(lái)畫圓,其中(x0,y0)是圓的中心,r為圓半徑; “public void paint(Graphics g)”用于運(yùn)行時(shí)鐘程序; “public void start()” applet的啟動(dòng)方法;

“public void stop()” applet的停止方法;

“public void run()” 線程的run方法。

四、 遇到的問(wèn)題和解決方法:

1、 問(wèn)題:

? 寫程序的時(shí)候,由于對(duì)有些Java知識(shí)不懂,所以有些想要表達(dá)的意思無(wú)法用Java代碼準(zhǔn)確的表達(dá)出來(lái),老是出錯(cuò)或者無(wú)法寫下去;

? 一開始,自己準(zhǔn)備的參考資料不足,無(wú)法在遇到問(wèn)題時(shí)有效的利用參考資料解決,遇到不懂的問(wèn)題和不會(huì)用程序語(yǔ)言表達(dá)的問(wèn)題時(shí),只能留在那里,無(wú)法解決,結(jié)果問(wèn)題最后越積越多,導(dǎo)致我無(wú)法再把程序?qū)懴氯?

? 一開始,對(duì)于老師布置的作業(yè)題目,我不太懂,無(wú)法進(jìn)行有效而且清晰的分析,自然也無(wú)法繼續(xù)下去寫程序了,耽誤了較多的時(shí)間;

? 對(duì)于要寫流程圖,一開始我并不懂是什么意思,也不知道怎么去寫。

2、 解決方法:

? 對(duì)于那些不懂的Java知識(shí)和不會(huì)寫的程序,我通過(guò)向同學(xué)尋求幫助和利用參考資料書,最終都解決了;

? 對(duì)于自己參考資料不足的缺點(diǎn),我在下課后,去了圖書館借閱有關(guān)方面的Java參考資料書,并且向同學(xué)借閱了他們所擁有的資料書,然后又利用自己的電腦上網(wǎng)查找了一些有關(guān)方面的參考知識(shí),終于在最后解決了資料不足的缺點(diǎn);

? 對(duì)于不懂的題目,我也通過(guò)向多個(gè)同學(xué)進(jìn)行詢問(wèn),最終弄懂了老師布置的題目所要求的內(nèi)容;

? 至于流程圖,在我向同學(xué)詢問(wèn)過(guò),并且上網(wǎng)進(jìn)行了一番查找和咨詢后,也總算弄懂了流程圖的含義,并努力寫了出來(lái)。

五、 認(rèn)識(shí)、感想、建議:

六、 參考資料:

《精通Java——JDK、數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)、Web開發(fā)》

《Java進(jìn)階教程》

《零起點(diǎn)Java應(yīng)用編程》

《Java程序設(shè)計(jì)應(yīng)用基礎(chǔ)教程》

七、 附加源程序:

import java.util._;

import java.awt._;

import java.applet._;

import java.text._;

public class AnimatorDemo extends Applet implements Runnable

{

Thread timer; // 用于顯示時(shí)鐘的線程

int lastxs, lastys, lastxm,

lastym, lastxh, lastyh;

SimpleDateFormat formatter; //格式化時(shí)間顯示

String lastdate; // 保存當(dāng)前時(shí)間的字符串

Font clockFaceFont; //設(shè)置顯示時(shí)鐘里面的數(shù)字的字體

Date currentDate; // 顯示當(dāng)前時(shí)間

Color handColor; // 用于顯示時(shí)針、分針和表盤的顏色

Color numberColor; // 用于顯示秒針和數(shù)字的顏色

public void init()

{

int x,y;

lastxs = lastys = lastxm = lastym = lastxh = lastyh = 0;

formatter = new SimpleDateFormat ("yyyy EEE MMM dd hh:mm:ss ");

currentDate = new Date();

lastdate = formatter.format(currentDate);

clockFaceFont = new Font("Serif", Font.PLAIN, 14);

handColor = Color.blue;

numberColor = Color.darkGray;

try {

setBackground(new Color(Integer.parseInt(getParameter("bgcolor"),16)));}

catch (Exception E) { }

try {

handColor = new Color(Integer.parseInt(getParameter("fgcolor1"),16));}

catch (Exception E) { }

try {

numberColor = new Color(Integer.parseInt(getParameter("fgcolor2"),16));} catch (Exception E) { } resize(300,300); // 設(shè)置時(shí)鐘窗口大小}

// 計(jì)算四分之一的圓弧

public void plotpoints(int x0, int y0, int x, int y, Graphics g)

{

g.drawLine(x0+x,y0+y,x0+x,y0+y);

g.drawLine(x0+y,y0+x,x0+y,y0+x);

g.drawLine(x0+y,y0-x,x0+y,y0-x);

g.drawLine(x0+x,y0-y,x0+x,y0-y);

g.drawLine(x0-x,y0-y,x0-x,y0-y);

g.drawLine(x0-y,y0-x,x0-y,y0-x);

g.drawLine(x0-y,y0+x,x0-y,y0+x);

g.drawLine(x0-x,y0+y,x0-x,y0+y);}

// 用Bresenham算法來(lái)畫圓,其中(x0,y0)是圓的中心,r為圓半徑

public void circle(int x0, int y0, int r, Graphics g)

{

int x,y;

float d;

x=0;

y=r;

d=5/4-r;

plotpoints(x0,y0,x,y,g);

while(y>x){

if (d<0) {

d=d+2_x+3;

x++;}

else {

d=d+2_(x-y)+5;

x++;

y--;}

plotpoints(x0,y0,x,y,g);}}

public void paint(Graphics g)

{int xh, yh, xm, ym, xs, ys, s = 0, m = 10, h = 10, xcenter, ycenter; String today;

currentDate = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("s",Locale.getDefault()); try {

s = Integer.parseInt(formatter.format(currentDate));

} catch (NumberFormatException n) {

s = 0;}

formatter.applyPattern("m");

try {

m = Integer.parseInt(formatter.format(currentDate));

} catch (NumberFormatException n) {

m = 10;}

formatter.applyPattern("h");

try {

h = Integer.parseInt(formatter.format(currentDate));

} catch (NumberFormatException n) {

h = 10;}

formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy");

today = formatter.format(currentDate);

//設(shè)置時(shí)鐘的表盤的中心點(diǎn)為(80,55)

xcenter=80;

ycenter=55;

// a= s_ pi/2 - pi/2 (to switch 0,0 from 3:00 to 12:00)

// x = r(cos a) + xcenter, y = r(sin a) + ycenter

xs = (int)(Math.cos(s _ 3.14f/30 - 3.14f/2) _ 45 + xcenter);

ys = (int)(Math.sin(s _ 3.14f/30 - 3.14f/2) _ 45 + ycenter);

xm = (int)(Math.cos(m _ 3.14f/30 - 3.14f/2) _ 40 + xcenter);

ym = (int)(Math.sin(m _ 3.14f/30 - 3.14f/2) _ 40 + ycenter);

xh = (int)(Math.cos((h_30 + m/2) _ 3.14f/180 - 3.14f/2) _ 30 + xcenter); yh = (int)(Math.sin((h_30 + m/2) _ 3.14f/180 - 3.14f/2) _ 30 + ycenter); //畫時(shí)鐘最外面的圓盤其中心在(xcenter,ycenter)半徑為50

g.setFont(clockFaceFont);

g.setColor(handColor);

circle(xcenter,ycenter,50,g);

//畫時(shí)鐘表盤里的數(shù)字

g.setColor(numberColor);

g.drawString("9",xcenter-45,ycenter+3);

g.drawString("3",xcenter+40,ycenter+3);

g.drawString("12",xcenter-5,ycenter-37);

g.drawString("6",xcenter-3,ycenter+45);

// 如果必要的話抹去然后重畫

g.setColor(getBackground());

if (xs != lastxs || ys != lastys) {

g.drawLine(xcenter, ycenter, lastxs, lastys);

g.drawString(lastdate, 5, 125);}

if (xm != lastxm || ym != lastym) {

g.drawLine(xcenter, ycenter-1, lastxm, lastym);

g.drawLine(xcenter-1, ycenter, lastxm, lastym); }

if (xh != lastxh || yh != lastyh) {

g.drawLine(xcenter, ycenter-1, lastxh, lastyh);

g.drawLine(xcenter-1, ycenter, lastxh, lastyh); }

g.setColor(numberColor);

g.drawString("", 5, 125);

g.drawString(today, 5, 125);

g.drawLine(xcenter, ycenter, xs, ys);

g.setColor(handColor);

g.drawLine(xcenter, ycenter-1, xm, ym);

g.drawLine(xcenter-1, ycenter, xm, ym);

g.drawLine(xcenter, ycenter-1, xh, yh);

g.drawLine(xcenter-1, ycenter, xh, yh);

lastxs=xs; lastys=ys;

lastxm=xm; lastym=ym;

lastxh=xh; lastyh=yh;

lastdate = today;

currentDate=null;

}//applet的啟動(dòng)方法

public void start()

{timer = new Thread(this);

timer.start();

}// applet的停止方法

public void stop()

{timer = null;

}//線程的run方法

public void run()

{Thread me = Thread.currentThread();

while (timer == me) {

try {Thread.currentThread().sleep(1000);}

catch (InterruptedException e) {}

repaint();}

}//注意:這里重寫了update()方法,只是調(diào)用了paint()方法來(lái)消除閃爍現(xiàn)象 public void update(Graphics g)

{paint(g);}

}

>>>下一頁(yè)更多精彩的“java實(shí)訓(xùn)報(bào)告范文”

674600