第一篇:java感悟
這一個(gè)月來(lái)
還有一年畢業(yè)了,這個(gè)暑假?zèng)]有回家,參加了培訓(xùn)。記得剛開(kāi)始的時(shí)候陳經(jīng)理要我們做好吃苦的準(zhǔn)備,當(dāng)時(shí)體會(huì)不到,培訓(xùn)后我才真正的體會(huì)到前三年我過(guò)的是多么空虛、無(wú)所事事。從以前的八點(diǎn)上課7點(diǎn)40起到現(xiàn)在的每天6點(diǎn)半多起床;從以前的玩手機(jī)玩到晚上12點(diǎn)多才睡到現(xiàn)在的有時(shí)候敲代碼敲到電腦沒(méi)電;從以前的沒(méi)事就dota到現(xiàn)在的玩dota沒(méi)一點(diǎn)感覺(jué)了。可以說(shuō)我還有我們都有了一個(gè)提升。
在這過(guò)程中,我也曾迷茫過(guò),莫名的心情不好,什么代碼也不想寫。有念想就是每天中午可以聽(tīng)同學(xué)演講,長(zhǎng)點(diǎn)知識(shí),開(kāi)闊開(kāi)闊視野,再就是周六下午可以痛痛快快的打場(chǎng)球,發(fā)泄發(fā)泄,可以說(shuō)籃球緩解了我不少壓力。老師也經(jīng)常鼓勵(lì)我們要堅(jiān)持,還給我們放了肖申克的救贖,要我們要有信念,要有一技之長(zhǎng),才能在一個(gè)地方立足。但無(wú)論如何謝天謝地我們都走了過(guò)來(lái)。
在我所學(xué)的語(yǔ)言當(dāng)中,我自認(rèn)為 JAVA 是一門比較強(qiáng)大的面向?qū)ο?的編程語(yǔ)言,不僅僅因?yàn)樗目缙脚_(tái)性,更多的是因?yàn)樗撵`活多變 和實(shí)用性較強(qiáng),可以說(shuō)比較的經(jīng)典和強(qiáng)悍。所以學(xué)好 java 語(yǔ)言有很大的用處,這次實(shí)訓(xùn),面對(duì)一道陌生的題 目和要求時(shí),不應(yīng)慌張和無(wú)措,首先應(yīng)該想到這和課本上的哪些知識(shí) 具有結(jié)合點(diǎn),回憶和分析這種結(jié)構(gòu)的算法和具體實(shí)施方法,綜合考慮 其他的方面,例如: 該題的易寫性和易懂性及其他的問(wèn)題的可利用性。在編寫時(shí),一個(gè)小小的符號(hào),一個(gè)常量變量的設(shè)定,這都無(wú)不考量著 我們的細(xì)心和嚴(yán)謹(jǐn),所以學(xué)習(xí)JAVA,不僅對(duì)我們以后學(xué)習(xí)其他語(yǔ)言 有很大的好處,而且也讓我們知道了和理解了作為一個(gè)編程人員首先 應(yīng)具有的良好心理素質(zhì),那就是冷靜思考和專心致志。對(duì)待學(xué)術(shù)知識(shí) 應(yīng)該是嚴(yán)謹(jǐn)和認(rèn)真。
這次培訓(xùn)不光提升了我們的技術(shù)水平,也提升了我們的綜合實(shí)力,從以前的人前講話緊張的不行,結(jié)結(jié)巴巴到現(xiàn)在的最起碼敢開(kāi)口講話了。以小組為單位提升了我們的團(tuán)隊(duì)合作能力,與人溝通交流的能力。這對(duì)我們以后的工作學(xué)習(xí)有很大的幫助。
通過(guò)這一個(gè)月的培訓(xùn),我們更多學(xué)到的是不懂就問(wèn)和自己應(yīng)該盡自己的全力 去嘗試,哪怕失敗,只要自己盡自己的全力,和身邊同學(xué)一起探討而不是抄襲,團(tuán)結(jié)合作,發(fā)揮團(tuán)隊(duì)意識(shí),最后在自己的努力下,終于運(yùn)行成功,這種成就感美不可言,心情愉悅至極。這一階段培訓(xùn)要結(jié)束了,大家都有種釋懷的感覺(jué),當(dāng)然我想我更多的 是興奮和自己掌握了知識(shí)之后的飽滿感,學(xué)知識(shí)就像吃東西一樣,吃 飽了就應(yīng)該好好的消化。要不斷的溫習(xí)和運(yùn)用,做到舉一反三,將所 學(xué)知識(shí)充分融入到平時(shí)的學(xué)習(xí)生活中去,為以后的工作做好堅(jiān)實(shí)的基礎(chǔ)。
雖然這一階段的培訓(xùn)結(jié)束了,但我們的學(xué)習(xí)之路還沒(méi)有結(jié)束,我們不能有一絲松懈,還應(yīng)該嚴(yán)格要求自己,不斷地溫習(xí)、學(xué)習(xí),讓這次的培訓(xùn)效果持續(xù)下去。安逸不回我我們帶來(lái)什么好的結(jié)果。吃的苦中苦方為人上人,相信自己一定可以。
第二篇:java實(shí)習(xí)心得感悟
java實(shí)習(xí)心得感悟
java實(shí)習(xí)的過(guò)程中,實(shí)習(xí)中的心得感悟就是實(shí)習(xí)帶來(lái)的知識(shí)。以下是小編為大家精心整理的java實(shí)習(xí)心得感悟,歡迎大家閱讀。
篇一:java實(shí)習(xí)心得感悟
作為就業(yè)培訓(xùn),項(xiàng)目的好壞對(duì)培訓(xùn)質(zhì)量的影響十分大,常常是決定性的作用。這篇文章是關(guān)于在學(xué)習(xí)JAVA軟件開(kāi)發(fā)時(shí)練習(xí)項(xiàng)目的總結(jié),簡(jiǎn)單總結(jié)為以下幾點(diǎn):
1、項(xiàng)目一定要全新的項(xiàng)目,不能是以前做過(guò)的
2、項(xiàng)目一定要企業(yè)真實(shí)項(xiàng)目,不能是精簡(jiǎn)以后的,不能脫離實(shí)際應(yīng)用系統(tǒng)
3、在開(kāi)發(fā)時(shí)要和企業(yè)的開(kāi)發(fā)保持一致
4、在做項(xiàng)目的時(shí)候不應(yīng)該有參考代碼
長(zhǎng)話短說(shuō)就是以上幾點(diǎn),如果你想要更多的了解,可以繼續(xù)往后看。
一:項(xiàng)目的地位
因?yàn)閰⒓泳蜆I(yè)培訓(xùn)的學(xué)員很多都是有一定的計(jì)算機(jī)基礎(chǔ),大部分都具備一定的編程基礎(chǔ),尤其是在?;蛘呤莿偖厴I(yè)的學(xué)生,多少都有一些基礎(chǔ)。
他們欠缺的主要是兩點(diǎn):
(1)不能全面系統(tǒng)的、深入的掌握某種技術(shù),也就是會(huì)的挺多,但都是皮毛,不能滿足就業(yè)的需要。
(2)沒(méi)有任何實(shí)際的開(kāi)發(fā)經(jīng)驗(yàn),完全是想象中學(xué)習(xí),考試還行,一到實(shí)際開(kāi)發(fā)和應(yīng)用就歇菜了。
解決的方法就是通過(guò)項(xiàng)目練習(xí),對(duì)所學(xué)知識(shí)進(jìn)行深化,然后通過(guò)項(xiàng)目來(lái)獲取實(shí)際開(kāi)發(fā)的經(jīng)驗(yàn),從而彌補(bǔ)這些不足,盡快達(dá)到企業(yè)的實(shí)際要求。
二:如何選擇項(xiàng)目
項(xiàng)目既然那么重要,肯定不能隨隨便便找項(xiàng)目,那么究竟如何來(lái)選擇呢?根據(jù)Java的研究和實(shí)踐經(jīng)驗(yàn)總結(jié),選擇項(xiàng)目的時(shí)候要注意以下方面:
1:項(xiàng)目不能太大,也不能太小
這個(gè)要根據(jù)項(xiàng)目練習(xí)的階段,練習(xí)的時(shí)間,練習(xí)的目標(biāo)來(lái)判斷。不能太大,太大了做不完,也不能太小,太小了沒(méi)有意義,達(dá)不到練習(xí)的目的。
2:項(xiàng)目不能脫離實(shí)際應(yīng)用系統(tǒng)
項(xiàng) 目應(yīng)該是實(shí)際的系統(tǒng),或者是實(shí)際系統(tǒng)的簡(jiǎn)化和抽象,不能夠是沒(méi)有實(shí)戰(zhàn)意義的教學(xué)性或者是純練習(xí)性的項(xiàng)目。因?yàn)榕嘤?xùn)的時(shí)間有限,必須讓學(xué)員盡快地融入到實(shí)際 項(xiàng)目的開(kāi)發(fā)當(dāng)中去。任何人接受和掌握一個(gè)東西都需要時(shí)間去適應(yīng),需要重復(fù)幾次才能夠真正掌握,所以每個(gè)項(xiàng)目都必須跟實(shí)際應(yīng)用掛鉤。
3:項(xiàng)目應(yīng)能覆蓋所學(xué)的主要知識(shí)點(diǎn)
學(xué)以致用,學(xué)完的知識(shí)點(diǎn)需要到應(yīng)
用中使用,才能夠真正理解和掌握,再說(shuō)了,軟件開(kāi)發(fā)是一個(gè)動(dòng)手能力要求很高的行業(yè),什么算會(huì)了,那就是能夠做出來(lái),寫出代碼來(lái),把問(wèn)題解決了,你就算會(huì)了。
4:最后綜合項(xiàng)目一定要是實(shí)際應(yīng)用系統(tǒng)
學(xué) 員經(jīng)過(guò)這個(gè)項(xiàng)目的練習(xí),就要走上實(shí)際的工作崗位了,如果這個(gè)系統(tǒng)還達(dá)不到實(shí)際應(yīng)用系統(tǒng)的標(biāo)準(zhǔn),學(xué)員練習(xí)過(guò)后也還是達(dá)不到企業(yè)實(shí)際的需要,那么這個(gè)培訓(xùn)應(yīng)該 說(shuō)質(zhì)量就不高了。理想的狀況是這個(gè)項(xiàng)目就是實(shí)際項(xiàng)目,到時(shí)候?qū)W員就業(yè)到另外一個(gè)公司,不過(guò)是換個(gè)地方干活而已,完全沒(méi)有技能上的問(wèn)題。
三:Java怎么選擇項(xiàng)目
這個(gè)不是靠想象,而是根據(jù)實(shí)際的情況一步一步分析出來(lái)的(呵呵要賣弄一下:這也算是邏輯思維),當(dāng)然這里只是討論方法,不涉及具體的項(xiàng)目案例。
我們可以采用倒推的方式來(lái)分析:
(1)最終的項(xiàng)目一定是真實(shí)的項(xiàng)目,也就是要把學(xué)員訓(xùn)練到能夠獨(dú)立開(kāi)發(fā)實(shí)際應(yīng)用,通常我們還不能選最簡(jiǎn)單的項(xiàng)目,因?yàn)閷W(xué)員的吸收還要有一個(gè)折扣,所以最終的項(xiàng)目應(yīng)該選實(shí)際項(xiàng)目中中等難度的項(xiàng)目
(2)最終項(xiàng)目定下來(lái)過(guò)后,開(kāi)始分解這個(gè)項(xiàng)目,看看為了達(dá)到完成這個(gè)項(xiàng)目需要哪些技術(shù)和知識(shí)點(diǎn),以及每部分知識(shí)點(diǎn)的深度,然后定出每個(gè)分階段的任務(wù)
(3)然后開(kāi)始選擇分階段的項(xiàng)目,分階段的項(xiàng)目應(yīng)該比剛才分析出來(lái)的分階段任務(wù)稍稍復(fù)雜點(diǎn),這樣才能達(dá)到訓(xùn)練的目標(biāo)。定下分階段項(xiàng)目后,同樣去分解,定出為了完成他所需要的各部分知識(shí)點(diǎn)和深度。
(4)然后是選擇上課期間的演示項(xiàng)目,演示的項(xiàng)目是為了做分階段項(xiàng)目服務(wù)的,可以認(rèn)為是分階段項(xiàng)目的分階段項(xiàng)目
(5)最終把要求掌握的知識(shí)點(diǎn)和要
求掌握的深度,分散到日常教學(xué)和練習(xí)中。好了,把上面的分析用正向描述就是:
日常教學(xué)和練習(xí)中學(xué)習(xí)和掌握的知識(shí) ==〉演示項(xiàng)目 ==〉分階段項(xiàng)目 ==〉綜合項(xiàng)目 ==〉勝任企業(yè)實(shí)際開(kāi)發(fā)需要。
附注:有了好的項(xiàng)目還要有好的訓(xùn)練方法(這個(gè)另外立文討論),最最基本和重要的一條就是:絕對(duì)要指導(dǎo)學(xué)生親自動(dòng)手做,而不是看和聽(tīng),所以盡量不要選擇有現(xiàn)成代碼的項(xiàng)目,演示用的項(xiàng)目也最好不配發(fā)代碼,讓學(xué)生能夠跟著做出來(lái)才是真的掌握了。
上面闡述了Java對(duì)項(xiàng)目的態(tài)度和基本選擇方法,這里再把其中幾個(gè)重要的、與眾不同的特點(diǎn)闡述如下:
1:真項(xiàng)目
項(xiàng) 目一定要真實(shí),要是企業(yè)實(shí)際應(yīng)用的,不能是教學(xué)性的項(xiàng)目,否則會(huì)脫離實(shí)達(dá)不到項(xiàng)目實(shí)訓(xùn)的效果。還有一個(gè)一定要是最新的項(xiàng)目,企業(yè)的要求也
是在不斷變化的,應(yīng)用技術(shù)的方向和層次也在不斷變化,這些都體現(xiàn)在最新項(xiàng)目的要求上,舊項(xiàng)目所要求的技術(shù)和層次很可能已經(jīng)過(guò)時(shí)了,根本達(dá)不到訓(xùn)練的目的。
Java的做法是:沒(méi)有固定項(xiàng)目,每個(gè)班做項(xiàng)目之前會(huì)從企業(yè)獲取最新的項(xiàng)目需求,然后經(jīng)過(guò)挑選和精心設(shè)計(jì),以保證既能訓(xùn)練技術(shù),又能得到實(shí)際的開(kāi)發(fā)經(jīng)驗(yàn)。這樣實(shí)現(xiàn)了跟企業(yè)的同步,企業(yè)做什么,我們就學(xué)什么,然后也跟著做什么。
2:真流程
開(kāi)發(fā)的流程也要跟企業(yè)的實(shí)際開(kāi)發(fā)保持一致。從項(xiàng)目立項(xiàng)開(kāi)始,到需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試的各個(gè)環(huán)節(jié),都要完全按照真實(shí)的開(kāi)發(fā)流程來(lái)做。
Java的主力老師都是實(shí)戰(zhàn)出身,在Java開(kāi)發(fā)方面都至少有七年以上的開(kāi)發(fā)經(jīng)驗(yàn),同時(shí)具備多年的項(xiàng)目管理經(jīng)驗(yàn),所以能夠完全按照企業(yè)開(kāi)發(fā)的流程來(lái)訓(xùn)
練學(xué)生。
3:真環(huán)境
開(kāi)發(fā)的環(huán)境也要跟企業(yè)一樣,包括常用的開(kāi)發(fā)工具、開(kāi)發(fā)平臺(tái)、應(yīng)用服務(wù)器、常用插件、測(cè)試工具、項(xiàng)目管理工具、項(xiàng)目管理文檔等等。
Java的做法是:構(gòu)建跟企業(yè)完全一樣的環(huán)境,然后跟企業(yè)開(kāi)發(fā)一樣,分團(tuán)隊(duì)開(kāi)發(fā)。老師就相當(dāng)于項(xiàng)目經(jīng)理,一個(gè)班分成多個(gè)小組,每個(gè)組有自己的Team Leader,大家分工合作,共同完成項(xiàng)目。
4:真開(kāi)發(fā)
這是Java最與眾不同的一點(diǎn),Java深知:軟件是做出來(lái)的,而不是聽(tīng)出來(lái)或者看出來(lái)的,企業(yè)需要能實(shí)際開(kāi)發(fā)的人員,而不是只聽(tīng)過(guò)、看過(guò)但不能做的人。所以Java十分強(qiáng)調(diào):項(xiàng)目一定要讓學(xué)生動(dòng)手寫出來(lái)。
Java的做法是:老師做為項(xiàng)目經(jīng)理,帶領(lǐng)著大家一起去做需求分析、概要設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、重
要業(yè)務(wù)流程的分析設(shè)計(jì)等,然后由學(xué)生們分團(tuán)隊(duì)進(jìn)行開(kāi)發(fā),實(shí)現(xiàn)整個(gè)項(xiàng)目。這里有幾個(gè)與眾不同:
(1):現(xiàn)場(chǎng)帶領(lǐng)學(xué)生一起做分析和設(shè)計(jì),而不是預(yù)先做好了來(lái)講講。因?yàn)樾枰獙W(xué)生學(xué)習(xí)的是分析設(shè)計(jì)的過(guò)程和方法,而不是已經(jīng)做好的結(jié)果。
(2):Java選用的項(xiàng)目基本都是企業(yè)最新的項(xiàng)目,很多都是Java的學(xué)生和企業(yè)在同期開(kāi)發(fā),所以是不配發(fā)源代碼的。這樣也斷絕了學(xué)生的依賴思想,認(rèn)認(rèn)真真去開(kāi)發(fā)??赡苡型瑢W(xué)會(huì)問(wèn):為什么不選擇有源代碼的項(xiàng)目呢,那樣還可以參考學(xué)習(xí)啊!
這 是一個(gè)典型的誤區(qū):覺(jué)得通過(guò)看人家的代碼能夠加快自己的學(xué)習(xí)。這個(gè)方法對(duì)有經(jīng)驗(yàn)的人來(lái)講是對(duì)的,但是對(duì)于還在學(xué)習(xí)期間,沒(méi)有經(jīng)驗(yàn)的學(xué)員來(lái)講,就是一個(gè)認(rèn)識(shí) 的誤區(qū)了。因?yàn)槟阋苍S能看懂代碼的語(yǔ)法,但根本看不懂代碼背后的含義,看不懂代碼的設(shè)計(jì),看不懂為什么要這么實(shí)現(xiàn),看不懂代碼所
體現(xiàn)的思想,其實(shí),看了跟 沒(méi)看沒(méi)有多大區(qū)別。
事實(shí)上,Java界最不缺的就是代碼了,那么多開(kāi)源軟件,小到一個(gè)工具,到企業(yè)級(jí)ERP都有開(kāi)源的,而且很多都是大師級(jí)的 作品,說(shuō)實(shí)話比你參考的那些代碼質(zhì)量高多了,但是又有多少人能真正看明白呢,原因就在于達(dá)不到那個(gè)水平,看不懂代碼背后所體現(xiàn)的設(shè)計(jì)和思想以及為什么要這 么做,效果也就不好了。當(dāng)然不排除有這樣的高人是能夠完全能理解和掌握這些大師級(jí)作品的,但估計(jì)不會(huì)是剛開(kāi)始學(xué)習(xí)Java開(kāi)發(fā)的學(xué)生,所以Java根據(jù)多年的培訓(xùn)經(jīng)驗(yàn),友情提 示:在初學(xué)階段,看一千遍,聽(tīng)一千遍,都不如自己動(dòng)手寫一遍所達(dá)到的學(xué)習(xí)效果。自己能寫出來(lái)的功能才是你真正掌握的功能,而不是你看得代碼或者是聽(tīng)老師講 的,就算講過(guò)看過(guò),但是自己做不出來(lái),那都不算會(huì)。Java的主力老師都是實(shí)戰(zhàn)出身,在Java開(kāi)發(fā)方面都至少有七年以上的開(kāi)發(fā)經(jīng)驗(yàn),同時(shí)具
備多年的項(xiàng)目管理經(jīng)驗(yàn),所以能夠完全按照企業(yè)開(kāi)發(fā)的流程來(lái)訓(xùn)練學(xué)生。
篇二:java實(shí)習(xí)心得感悟
在本學(xué)期的開(kāi)學(xué)初期,我們?cè)趯W(xué)校機(jī)房進(jìn)行了為期三周的JAVA實(shí)訓(xùn)。現(xiàn)在即將結(jié)束了,回首本學(xué)期的java學(xué)習(xí),重點(diǎn)還是在學(xué)習(xí)概念等一些常識(shí)性的東西,通過(guò)這次為期三周的實(shí)訓(xùn),遇到了很多自己感興趣的問(wèn)題,就會(huì)很有興趣,當(dāng)然學(xué)知識(shí)可不能憑自己的愛(ài)好和一時(shí)興趣,不能遇到自己不敢興趣的問(wèn)題就把它拋給同學(xué),要學(xué)會(huì)自己踏踏實(shí)實(shí)認(rèn)真的去解決問(wèn)題。要一步一個(gè)腳印,認(rèn)認(rèn)真真,踏踏實(shí)實(shí),理論與實(shí)踐相結(jié)合,在扎實(shí)掌握課本實(shí)例和內(nèi)容之后,有一定的擴(kuò)展閱讀和課外學(xué)習(xí),充分全面的了解JAVA的應(yīng)用和擴(kuò)展運(yùn)用。
本次我們小組所做的程序是小小通訊錄基本功能已經(jīng)較好的完成,可是還是有一些不完善,比如我們的通訊錄沒(méi)有能夠做到把通訊錄里所儲(chǔ)存的信息以列表的形式展現(xiàn)出來(lái),所以還是有些
不完善,我們的指導(dǎo)老師對(duì)我們的程序作出了大體評(píng)價(jià),發(fā)現(xiàn)我們的思想還是處于一個(gè)比較簡(jiǎn)單的過(guò)程當(dāng)中,老師的幾句簡(jiǎn)單評(píng)價(jià),就帶給我們無(wú)與倫比的沖擊性,由于我們寫程序的經(jīng)驗(yàn)尚且較少,很多東西無(wú)法考慮到位,老師的點(diǎn)評(píng),使我們認(rèn)識(shí)到了不足與今后的前進(jìn)方向與目標(biāo),使我們更加具有動(dòng)力與激情,擁有了繼續(xù)認(rèn)真學(xué)習(xí)JAVA的信心,擁有了成為一位合格的高級(jí)程序員的壯志,在編寫程序的過(guò)程當(dāng)中,我們?cè)谝婚_(kāi)始就遇到了問(wèn)題,一直在糾結(jié)與是使用數(shù)據(jù)庫(kù)連接還是使用文件,經(jīng)過(guò)老師的耐心講解,我們了解到了尚未接觸到的Jar包等一些列名詞,但是經(jīng)過(guò)數(shù)據(jù)庫(kù)的抒寫與連接發(fā)現(xiàn)SQL2000與SQL2005無(wú)法同步,所以最終我們選擇了使用文件來(lái)進(jìn)行這次程序的編寫,第二個(gè)問(wèn)題就是我們的程序在進(jìn)行按鈕新窗口的鏈接,在新窗口彈出時(shí),無(wú)法將老窗口關(guān)閉,糾結(jié)了好久,詢問(wèn)老師,老師還給我用了父子的生動(dòng)例子來(lái)講解,最終我
們查找JDK,查找類的用法終于完美解決!甚是興奮!在我所學(xué)的語(yǔ)言當(dāng)中,我自認(rèn)為JAVA是一門比較強(qiáng)大的面向?qū)ο蟮木幊陶Z(yǔ)言,不僅僅因?yàn)樗目缙脚_(tái)性,更多的是因?yàn)樗撵`活多變和實(shí)用性較強(qiáng),可以說(shuō)比較的經(jīng)典和強(qiáng)悍。
所以學(xué)好java語(yǔ)言有很大的用處,這次實(shí)訓(xùn),面對(duì)一道陌生的題目和要求時(shí),不應(yīng)慌張和無(wú)措,首先應(yīng)該想到這和課本上的哪些知識(shí)具有結(jié)合點(diǎn),回憶和分析這種結(jié)構(gòu)的算法和具體實(shí)施方法,綜合考慮其他的方面,例如:該題的易寫性和易懂性及其他的問(wèn)題的可利用性。在編寫時(shí),一個(gè)小小的符號(hào),一個(gè)常量變量的設(shè)定,這都無(wú)不考量著我們的細(xì)心和嚴(yán)謹(jǐn),所以學(xué)習(xí)JAVA,不僅對(duì)我們以后學(xué)習(xí)其他語(yǔ)言有很大的好處,而且也讓我們知道了和理解了作為一個(gè)編程人員首先應(yīng)具有的良好心理素質(zhì),那就是冷靜思考和專心致志。對(duì)待學(xué)術(shù)知識(shí)應(yīng)該是嚴(yán)謹(jǐn)和認(rèn)真。
這次實(shí)訓(xùn),我們更多學(xué)到的是不懂
就問(wèn)和自己應(yīng)該盡自己的全力去嘗試,哪怕失敗,只要自己盡自己的全力,和身邊同學(xué)一起探討而不是抄襲,團(tuán)結(jié)合作,發(fā)揮團(tuán)隊(duì)意識(shí),最后在自己的努力下,終于運(yùn)行成功,這種成就感美不可言,心情愉悅至極。據(jù)我了解,軟件工程專業(yè)培養(yǎng)的工程型人才要富有創(chuàng)新精神。軟件工程技術(shù)人員致力于開(kāi)發(fā)可靠好用的計(jì)算機(jī)產(chǎn)品和軟件產(chǎn)品,必須具有扎實(shí)寬泛的知識(shí)面和較高的社會(huì)責(zé)任感,必須了解最新的技術(shù)進(jìn)展、能夠綜合運(yùn)用各方面技術(shù)并深刻理解設(shè)計(jì)一個(gè)合格產(chǎn)品所涉及的多方面因素,如市場(chǎng)需求、用戶習(xí)慣等。另外,這兩個(gè)學(xué)科領(lǐng)域是相輔相成的,并共同推進(jìn)計(jì)算機(jī)技術(shù)的方展。計(jì)算機(jī)技術(shù)的發(fā)展會(huì)推動(dòng)軟件的開(kāi)發(fā),軟件工業(yè)則對(duì)計(jì)算機(jī)科學(xué)技術(shù)的進(jìn)展以及軟件應(yīng)用領(lǐng)域的擴(kuò)展起著重要的推動(dòng)作用。軟件工程人才的就業(yè)前景十分看好。
未來(lái)幾年,國(guó)內(nèi)外高層次軟件人才將供不應(yīng)求。畢業(yè)生主要在各大軟件公
司、企事業(yè)單位、高等院校、各大研究所、國(guó)防等重要部門從事軟件設(shè)計(jì)、開(kāi)發(fā)、應(yīng)用與研究工作。有數(shù)據(jù)表明,我國(guó)軟件出口規(guī)模達(dá)到215億元,軟件從業(yè)人員達(dá)到72萬(wàn)人,在中國(guó)十大IT職場(chǎng)人氣職位中,軟件工程師位列第一位,軟件工程人才的就業(yè)前景十分樂(lè)觀。信息化是IT界的焦點(diǎn)。而信息化的實(shí)現(xiàn),除了需要技術(shù)支持,人才也是很重要的環(huán)節(jié)。如何培養(yǎng)與國(guó)際接軌的高素質(zhì)軟件工程人才,已經(jīng)成為中國(guó)軟件產(chǎn)業(yè)的當(dāng)務(wù)之急。
軟件產(chǎn)業(yè)的發(fā)展水平,決定了一個(gè)國(guó)家的信息產(chǎn)業(yè)發(fā)展水平及其在國(guó)際市場(chǎng)上的綜合競(jìng)爭(zhēng)力。目前,我國(guó)軟件高級(jí)人才的短缺已經(jīng)成為制約我國(guó)軟件產(chǎn)業(yè)快速發(fā)展的一個(gè)瓶頸。在中國(guó),國(guó)內(nèi)市場(chǎng)對(duì)軟件人才的需求每年高達(dá)20萬(wàn)人,而高校計(jì)算機(jī)畢業(yè)生中的軟件工程人才還很缺乏,尤其是高素質(zhì)的軟件工程人才的極度短缺。盡快培養(yǎng)起適合信息產(chǎn)業(yè)所需要的高素質(zhì)軟件工程人才,已經(jīng)成為信息化工作中的重中之重。Java具有如此好的就業(yè)與發(fā)展前景,使我更加堅(jiān)定了軟件開(kāi)發(fā)這條道路。但是自己還與很多不足,需要努力學(xué)習(xí)與改進(jìn),關(guān)鍵是讀這個(gè)專業(yè)要自己動(dòng)手實(shí)踐,自己解決實(shí)踐中發(fā)生的問(wèn)題,對(duì)任何程序要懂得舉一反
如果指望按書本的步驟做..指望每學(xué)期死記硬背通過(guò)考試..那絕對(duì)是沒(méi)前途了..如果一個(gè)軟件工程的學(xué)生都是在玩電腦游戲中度過(guò)每個(gè)學(xué)期的..那就不要期望畢業(yè)能找到本專業(yè)的好工作了....Sun公司副總裁、Sun研究院院士、軟件部首席技術(shù)官詹姆斯戈士林(JamesGosling)博士以Java技術(shù)之父聞名于世。作為Sun研究院院士,他親手設(shè)計(jì)了Java語(yǔ)言,完成了Java技術(shù)的原始編譯器和虛擬機(jī)。在他的帶領(lǐng)下,Java現(xiàn)已成為互聯(lián)網(wǎng)的標(biāo)準(zhǔn)編程模式以及分布式企業(yè)級(jí)應(yīng)用的事實(shí)標(biāo)準(zhǔn),其跨平臺(tái)的技術(shù)優(yōu)勢(shì)為網(wǎng)絡(luò)計(jì)算帶來(lái)了劃時(shí)代的變革。自1995年5月正式推出的11年
以來(lái),Java已從編程語(yǔ)言發(fā)展成為全球第一大通用開(kāi)發(fā)平臺(tái)。Java技術(shù)已為計(jì)算機(jī)行業(yè)主要公司所采納,同時(shí)也被越來(lái)越多的國(guó)際技術(shù)標(biāo)準(zhǔn)化組織所接受。1999年,Sun推出了以Java2平臺(tái)為核心的J2EE、J2SE和J2ME三大平臺(tái)。隨著三大平臺(tái)的迅速推進(jìn),在世界上形成了一股巨大的Java應(yīng)用浪潮。作為唯一在互聯(lián)網(wǎng)上開(kāi)發(fā)的語(yǔ)言,Java平臺(tái)以其移動(dòng)性、安全性和開(kāi)放性受到追捧。目前,中國(guó)的軟件人才主要有兩方面的欠缺,一是英語(yǔ)水平差,二是軟件開(kāi)發(fā)經(jīng)驗(yàn)缺乏。針對(duì)這種情況,很多軟件學(xué)院大幅增加了英語(yǔ)課時(shí),同時(shí)廣泛采用國(guó)外原版教材,部分基礎(chǔ)課和專業(yè)課采用雙語(yǔ)教學(xué)甚至全英文授課。各軟件學(xué)院還特別強(qiáng)調(diào)實(shí)踐環(huán)節(jié)。像清華軟件學(xué)院90%的專業(yè)課程都配有課程實(shí)驗(yàn)大作業(yè),學(xué)生從本科二年級(jí)起就能根據(jù)興趣選擇參加各種研究所的研究工作。所以我還要努力學(xué)習(xí)英語(yǔ),提高自己各方面技能Java如此潮流,我就更具信心,爭(zhēng)
取早如成為一名合格的專業(yè)性人才!
最后終于要結(jié)束了,大家都有種釋懷的感覺(jué),當(dāng)然我想我更多的是興奮和自己掌握了知識(shí)之后的飽滿感,學(xué)知識(shí)就像吃東西一樣,吃飽了就應(yīng)該好好的消化。要不斷的溫習(xí)和運(yùn)用,做到舉一反三,將所學(xué)知識(shí)充分融入到平時(shí)的學(xué)習(xí)生活中去,為以后的工作做好堅(jiān)實(shí)的基礎(chǔ)。感謝學(xué)校和老師能夠?yàn)槲覀兲峁┻@次機(jī)會(huì),讓我們更好的掌握和了解JAVA這門語(yǔ)言。謝謝!
篇三:java實(shí)習(xí)心得感悟
經(jīng)過(guò)五天的Java實(shí)訓(xùn),感觸很深,收獲也很大,對(duì)自己的缺點(diǎn)也有了很多的認(rèn)識(shí),回首本學(xué)期JAVA學(xué)習(xí),重點(diǎn)還是在學(xué)習(xí)概念等一些常識(shí)性的東西,關(guān)于類型、變量、接口、輸入輸出流、分析異常、拋出異常,后期主要是小程序運(yùn)用,Gui界面設(shè)計(jì)和事件。
在我學(xué)習(xí)的語(yǔ)言中,我自己認(rèn)為Java是一門比較強(qiáng)大的面向?qū)ο蟮木幊陶Z(yǔ)言,不僅僅是因?yàn)樗目缙脚_(tái)型還有
它的較強(qiáng)的實(shí)用性,強(qiáng)悍的嵌入性。
本次實(shí)訓(xùn)主要是針對(duì)我們對(duì)項(xiàng)目流程不熟悉和對(duì)整體項(xiàng)目的把握不清楚,學(xué)習(xí)數(shù)據(jù)庫(kù)的設(shè)計(jì)和表的建設(shè)以及表與表之間的聯(lián)系,還有一些代碼的編寫,這些都是我們所不熟悉的也是我們最薄弱的部分。
通過(guò)這一周的實(shí)訓(xùn),雖然實(shí)訓(xùn)的時(shí)間不長(zhǎng),但是總體上收獲挺大的,當(dāng)我們正式準(zhǔn)備學(xué)習(xí)實(shí)訓(xùn)java編程技術(shù)時(shí),讓我感到非常高興,因?yàn)閖ava一直學(xué)的是課本知識(shí),所以實(shí)訓(xùn)對(duì)于我來(lái)說(shuō)是必須要學(xué)會(huì)熟練操作的。當(dāng)然開(kāi)始學(xué)習(xí)后也并非是想象中那樣順利,開(kāi)始的學(xué)習(xí)讓我異常感到學(xué)習(xí)任務(wù)的艱巨,因?yàn)閷W(xué)習(xí)中我遇到了很多以前未曾遇到的難點(diǎn),有時(shí)后也難免會(huì)失去耐心,但是,通過(guò)老師的指導(dǎo),自己的努力的練習(xí),我順利的化解了一道道的障礙??朔薐ava學(xué)習(xí)上的一道道難關(guān),現(xiàn)在自己已經(jīng)基本掌握了java的基礎(chǔ)知識(shí)。
有些知識(shí)點(diǎn)以前沒(méi)有學(xué)過(guò),但我也
沒(méi)有去研究,實(shí)訓(xùn)時(shí)突然間覺(jué)得自己真的有點(diǎn)無(wú)知,雖然現(xiàn)在去看依然可以解決問(wèn)題,但要浪費(fèi)許多時(shí)間,這一點(diǎn)是我必須在以后的學(xué)習(xí)中加以改進(jìn)的地方,同時(shí)也要督促自己在學(xué)習(xí)的過(guò)程中不斷的完善自我。另外一點(diǎn),也是在實(shí)訓(xùn)中必不可少的部分,就是同學(xué)之間的互相幫助。所謂當(dāng)局者迷,旁觀者清,有些東西感覺(jué)自己做的是時(shí)候明明沒(méi)什么錯(cuò)誤,偏偏程序運(yùn)行時(shí)就是有錯(cuò)誤,讓其他同學(xué)幫忙看了一下,發(fā)現(xiàn)其實(shí)是個(gè)很小的錯(cuò)誤。所以說(shuō),相互幫助是很重要的一點(diǎn),這在以后的工作或生活中也是很關(guān)鍵的。俗話說(shuō):要想為事業(yè)多添一把火,自己就得多添一捆材。此次實(shí)訓(xùn),我深深體會(huì)到了積累知識(shí)的重要性。在實(shí)訓(xùn)當(dāng)中我們遇到了不少難題,但是經(jīng)過(guò)我們大家的討論和老師細(xì)心的一一指導(dǎo),問(wèn)題得到了解決。兩個(gè)月的實(shí)訓(xùn)結(jié)束了,收獲頗豐,同時(shí)也更深刻的認(rèn)識(shí)到要做一個(gè)合格的程序員并非我以前想像的那么容易,最重要的還是細(xì)致嚴(yán)謹(jǐn)。
社會(huì)是不會(huì)要一個(gè)一無(wú)是處的人的,所以我們要更多更快地從一個(gè)學(xué)生向工作者轉(zhuǎn)變,總的來(lái)說(shuō)我對(duì)這次實(shí)習(xí)還是比較滿意的,它使我學(xué)到了很多東西,為我以后的學(xué)習(xí)做了引導(dǎo),點(diǎn)明了方向。
這次實(shí)訓(xùn),我們更多學(xué)到的是不懂就要問(wèn)和自己應(yīng)該盡自己的全力去嘗試,哪怕失敗,也要盡自己的全力,和身邊的同學(xué)一起探討而不是抄襲,團(tuán)隊(duì)合作和發(fā)揮團(tuán)隊(duì)意識(shí),最后在自己的努力下終于運(yùn)行成功,這種感覺(jué)美不可言,心情愉悅至極,有很強(qiáng)的成就感。
最后,我自己感覺(jué)這次實(shí)訓(xùn)的收獲還是很大的,我相信在不久的將來(lái)我們會(huì)有自己的一片天空。
第三篇:java個(gè)人簡(jiǎn)歷
個(gè)人簡(jiǎn)歷
個(gè)人信息
姓 名:張x
性別: 男 專業(yè): 軟件技術(shù) 年齡:23 學(xué)歷: 電 話:111111111 Email:xxxxxxx@126.om現(xiàn)住址:北京市海淀區(qū)
擇業(yè)目標(biāo)
Java軟件工程師
專業(yè)技能
? 精通 COREJAVA
? 熟練掌握 Hibernate,struts
? 熟練掌握
? 熟練應(yīng)用;
?熟悉
?熟悉
?了解,;
?了解……
主要工作經(jīng)歷
XXXX年XX月—XXXX年XX月XX公司XX
項(xiàng)目經(jīng)驗(yàn)
XXXX年XX月—XXXX年XX月XX公司XX 項(xiàng)目名稱1:XXX
項(xiàng)目描述:
責(zé)任描述:
開(kāi)發(fā)環(huán)境:
項(xiàng)目名稱2:XXX
項(xiàng)目描述:
責(zé)任描述:
開(kāi)發(fā)環(huán)境:
項(xiàng)目名稱3:XXX
項(xiàng)目描述:
責(zé)任描述:
開(kāi)發(fā)環(huán)境:
……
個(gè)人情況
性別:X
年 齡:XX現(xiàn)住址:XXX 培訓(xùn)經(jīng)歷
XXXX年XX月—XXXX年XX月XXXX軟件工程師
教育背景
XXXX年XX月—XXXX年XX月XXX大學(xué)XX專業(yè)???/p>
自我評(píng)價(jià)
第四篇:java簡(jiǎn)歷
姓名
男 |1989 年1月生 | 戶口:河北承德 | 現(xiàn)居住于北京-海淀區(qū)
團(tuán)員(入黨積極分子)| 身份證:xxxxxxxxxxxxxxxxxx
電話:***(手機(jī))E-mail: 598802631@qq.com
求職意向
·工作性質(zhì): 全職
·期望職業(yè): 軟件測(cè)試、研發(fā)工程師、軟件工程師、其他
·期望行業(yè): 計(jì)算機(jī)軟件
·工作地區(qū): 北京
·目前狀況: 我目前處于離職狀態(tài),可立即上崗
自我評(píng)價(jià)
簡(jiǎn)而言之,我認(rèn)為我有如下的優(yōu)點(diǎn):目標(biāo)管理能力較好、團(tuán)隊(duì)意識(shí)較強(qiáng)、有企業(yè)歸屬感、踏實(shí)勤奮、自學(xué)能力強(qiáng)、溝通能力好、社會(huì)經(jīng)驗(yàn)較多。
四年的計(jì)算機(jī)學(xué)習(xí)使我對(duì)軟件行業(yè)充滿了憧憬,為了使自己能快速的融入這個(gè)行業(yè),并獲得一個(gè)較高的起點(diǎn),我選擇了工信部藍(lán)橋計(jì)劃(專業(yè)Java軟件工程師培訓(xùn))來(lái)充實(shí)和提升自己。經(jīng)過(guò)4個(gè)月的項(xiàng)目實(shí)戰(zhàn)培訓(xùn),我對(duì)Java有了全新的認(rèn)識(shí),也對(duì)軟件開(kāi)發(fā)有了全新的認(rèn)識(shí)。
Java是一個(gè)特別適合團(tuán)隊(duì)協(xié)作的語(yǔ)言,1+1>2是我們的共同的目標(biāo),我是團(tuán)隊(duì)的一員,我有義務(wù)為了達(dá)到我們共同的目標(biāo)而努力。
本人大學(xué)期間曾在必勝客兼職一年半,雖然工作很累,薪水也不高,但我看重的是他們的企業(yè)文化和企業(yè)氛圍。這段工作經(jīng)歷,使我積累了很多的工作經(jīng)驗(yàn),培養(yǎng)了我溝通能力,協(xié)調(diào)能力。我認(rèn)為我的付出是值得,我感謝每一次曾經(jīng)給我機(jī)會(huì)的企業(yè)和個(gè)人,我永遠(yuǎn)會(huì)懷著一個(gè)感恩的心認(rèn)真工作。
工作經(jīng)歷
2012/08--2012/10
國(guó)信藍(lán)點(diǎn)科技有限公司|軟件工程師
工作描述:開(kāi)發(fā)工具是MyEclipse+oracle+sqlplus
通過(guò)這幾個(gè)月的實(shí)踐,能夠熟練地運(yùn)用myEclipse、Eclipse,sqlplus工具,hibernate,struts,spring這三大框架實(shí)現(xiàn)了三層結(jié)構(gòu)的調(diào)度.能夠獨(dú)立的完成小型管理系統(tǒng)的制作,.熟練掌握XHTML、CSS和AJAX等前端頁(yè)面開(kāi)發(fā)技術(shù),javase(在線聊天系統(tǒng),網(wǎng)絡(luò)版坦克大戰(zhàn))web,oracle(在線購(gòu)物系統(tǒng))javaee(各個(gè)平日的辦公應(yīng)用,OA辦公系統(tǒng))等十幾個(gè)開(kāi)發(fā)項(xiàng)目,通過(guò)每日一練,每周一做,每月大總結(jié),積累了大量的項(xiàng)目經(jīng)驗(yàn)和實(shí)戰(zhàn)經(jīng)驗(yàn)!
項(xiàng)目名稱:在線購(gòu)物系統(tǒng)開(kāi)發(fā)
軟件環(huán)境:WindowsXP + JSP + Struts + Hibernate +Spring+ Oracle
開(kāi)發(fā)工具:MyEclipse
項(xiàng)目描述:
該項(xiàng)目是一個(gè)B2C模式的購(gòu)物網(wǎng)站,主要用于出售各種商品,系統(tǒng)功能可分為:用戶模塊,產(chǎn)品模塊,購(gòu)物車模塊和訂單模塊。用戶模塊有驗(yàn)證登錄和注冊(cè)信息,修改信息。產(chǎn)品模塊有產(chǎn)品分頁(yè)展示,產(chǎn)品搜索,產(chǎn)品的增加和刪除以及修改。只有用戶登錄后,才能進(jìn)行購(gòu)買和下訂單。本項(xiàng)目基于B/S架構(gòu)下的MVC模式,分為展現(xiàn)層、控制層、業(yè)務(wù)層和數(shù)據(jù)庫(kù)訪問(wèn)層。采用的技術(shù)有JSP、AJAX、Struts、Hibernate、Log4J和JUnit等技術(shù),其中展現(xiàn)層使用JSP和Struts標(biāo)簽,對(duì)于用戶登錄和用戶注冊(cè)等實(shí)時(shí)性要求較高的界面使用AJAX,進(jìn)一步提高用戶體驗(yàn)度;使用Struts的Action充當(dāng)控制層,負(fù)責(zé)接收用戶的輸入請(qǐng)求并負(fù)責(zé)調(diào)度和控制整個(gè)流程的流轉(zhuǎn);數(shù)據(jù)訪問(wèn)層借助于Hibernate實(shí)現(xiàn),代碼簡(jiǎn)潔且可適應(yīng)不同的數(shù)據(jù)庫(kù)。
項(xiàng)目中指責(zé):產(chǎn)品模塊的開(kāi)發(fā),并和團(tuán)隊(duì)成員共同分析、解決項(xiàng)目中出現(xiàn)的問(wèn)題。最后整合各個(gè)模塊之間出現(xiàn)的問(wèn)題。
體會(huì):
1、關(guān)鍵是業(yè)務(wù)邏輯分析清楚再著手編程會(huì)事半功倍,2、自己在業(yè)務(wù)邏輯分析上有一定的思想。
項(xiàng)目名稱:點(diǎn)餐支付系統(tǒng)
周期:1個(gè)月
軟件開(kāi)發(fā)環(huán)境:window xp+myeclipe+oracle+jdk6.0+Tomcat
實(shí)用技術(shù):spring+struts2+hibernate+log4j+Ajax+jsp
項(xiàng)目描述:
摒棄火鍋城傳統(tǒng)服務(wù)員手寫菜品信息,然后服務(wù)員送菜單到后臺(tái)繁瑣過(guò)程的弊端,運(yùn)用oracle數(shù)據(jù)庫(kù)存儲(chǔ)信息,jsp界面錄入和顯示,struts2完成轉(zhuǎn)發(fā),根據(jù)spring的配置文件采用多模塊的集成方式完成,按功能劃分模塊。
主要功能描述:
1.前端頁(yè)面顯示該店的菜品及菜品圖片和相應(yīng)的詳細(xì)信息,用戶通過(guò)菜單選取菜品,顧客點(diǎn)單確定后,服務(wù)員確認(rèn)以點(diǎn)菜品和酒水,待確認(rèn)后,在前臺(tái)界面錄入臺(tái)號(hào)和以點(diǎn)物品,運(yùn)用加cookie的技術(shù)記錄菜品信息,錄入完畢后 ,一并提交給后臺(tái)處理。
2.前臺(tái)提交的信息分類生成總表單,然后分類轉(zhuǎn)發(fā)各個(gè)生產(chǎn)部門,已完成菜品及酒水的服務(wù)。
3.經(jīng)理登陸后可以根據(jù)消費(fèi)的總金額和優(yōu)惠級(jí)別進(jìn)行對(duì)應(yīng)的優(yōu)惠操作。收銀員根據(jù)菜單及消費(fèi)詳單進(jìn)行相應(yīng)收費(fèi)。
4.促銷界面顯示火鍋城的相應(yīng)新菜品和催銷,推銷產(chǎn)品,由點(diǎn)餐員工進(jìn)行相應(yīng)的促銷和點(diǎn)餐調(diào)整工作。項(xiàng)目中我的職責(zé):
1.將以點(diǎn)菜品和酒水保存并分配到后臺(tái)各個(gè)工作站進(jìn)行制作
2.進(jìn)行酒水和菜品等的價(jià)格合計(jì)(不包括打折和其他的優(yōu)惠)。
3.統(tǒng)計(jì)本次消費(fèi)菜品和酒水的記錄,同時(shí)可以查看當(dāng)天相應(yīng)產(chǎn)品的銷售狀況和庫(kù)存量,來(lái)及時(shí)的調(diào)整促銷和訂貨。
項(xiàng)目總結(jié):
通過(guò)本次的項(xiàng)目,雖然各司其職,但還是需要及時(shí)的與其余的人員交流,我主要是和訂貨系統(tǒng)和前臺(tái)銷售系統(tǒng)的制作人員交流,深入的知道了團(tuán)隊(duì)里面的每個(gè)人都是項(xiàng)目里的一塊基石,只有每塊石頭都穩(wěn)固才可以完成整個(gè)項(xiàng)目。再次重審的是書寫規(guī)范性的重要性和團(tuán)隊(duì)協(xié)作的重要性。
在校學(xué)習(xí)情況
曾獲
院校級(jí)二等獎(jiǎng)學(xué)金
2008/10
三好學(xué)生|縣市級(jí)
在校期間,學(xué)習(xí)成績(jī)優(yōu)異,積極的承擔(dān)了學(xué)習(xí)委員的職位,自己組織班級(jí)學(xué)生周日補(bǔ)課,并多次帶全班同學(xué)去養(yǎng)老院做義務(wù)工,得到了全校老師的認(rèn)同,特別給予三好學(xué)生稱號(hào)!
培訓(xùn)經(jīng)歷
2012/07--2012/1
1培訓(xùn)課程:java全部課程
所獲證書:軟件初級(jí)工程師,DB2認(rèn)證,計(jì)算機(jī)等級(jí)證書
培訓(xùn)地點(diǎn):北京國(guó)信藍(lán)點(diǎn)
詳細(xì)描述:我通過(guò)在藍(lán)橋計(jì)劃學(xué)習(xí),現(xiàn)在能夠熟練掌握J(rèn)ava、JSP/Servlet,熟悉XML、JavaScript等語(yǔ)言;熟悉J2EE相關(guān)技術(shù)JPA、JNDI等,了解Web Service技術(shù);熟練掌握Struts、Hibernate開(kāi)源框架,熟悉Spring、JUnit、JQuery工具,熟悉Oracle數(shù)據(jù)庫(kù)的開(kāi)發(fā)和標(biāo)準(zhǔn)SQL語(yǔ)法,熟練使用myEclipse、sqlplus,mysql等工具;在此期間學(xué)會(huì)了軟件集成技術(shù),能夠熟練地運(yùn)用三大框架,在此期間參與了在線在購(gòu)物系統(tǒng),和一個(gè)公司的管理系統(tǒng)制作,在學(xué)習(xí)期間就將學(xué)習(xí)與應(yīng)用能力相結(jié)合,能夠適應(yīng)各種程序的制作并在此期間積累了大量的工作經(jīng)驗(yàn)。
在校實(shí)踐經(jīng)驗(yàn)
2011/09--2012/03
初級(jí)java程序員 | 通過(guò)半年的在校實(shí)踐,本人主要是負(fù)責(zé)機(jī)房設(shè)備維護(hù)和簡(jiǎn)單的java程序編寫,王老師等人負(fù)責(zé)學(xué)校選課系統(tǒng)的編制工作,并在此期間和我們講解相關(guān)的知識(shí)點(diǎn)和需要技能,在此期間我主要學(xué)會(huì)了jsp頁(yè)面的簡(jiǎn)單制作和jsp頁(yè)面的美化工作,因?yàn)橐郧皩?duì)java知識(shí)的匱乏,每天要不停的學(xué)習(xí)JAVASE基礎(chǔ)知識(shí),并沒(méi)有掌握過(guò)多的個(gè)框架的聯(lián)合使用技術(shù)??傮w來(lái)說(shuō),本人更深入的了解了java的用途和前景,為今年在國(guó)信藍(lán)點(diǎn)深入的學(xué)習(xí)打下了良好的基礎(chǔ)。
證書
2012/09
全國(guó)計(jì)算機(jī)應(yīng)用技術(shù)證書
2012/09
初級(jí)工程師
2012/09
程序員
2010/09
全國(guó)計(jì)算機(jī)等級(jí)二級(jí)
2012/10
IBM db2-302a合格認(rèn)證
2010/03
全國(guó)計(jì)算機(jī)等級(jí)一級(jí)
2010/12
大學(xué)英語(yǔ)四級(jí)
證書說(shuō)明:英語(yǔ)四級(jí)497分
2012/01
普通話等級(jí)證書
證書說(shuō)明:二級(jí)甲等
語(yǔ)言能力
英語(yǔ):讀寫能力熟練|聽(tīng)說(shuō)能力良好
特殊技能
我自信有很好的團(tuán)隊(duì)協(xié)作能力和交際能力,在大二上學(xué)期我加入了百勝企業(yè)(必勝客)開(kāi)始了兼職生活,在必勝客的一年零八個(gè)月的時(shí)間里,上班的時(shí)候基本上每次來(lái)回騎車二十公里,即使這樣我也從來(lái)沒(méi)有放棄過(guò),因?yàn)楹芎玫膱F(tuán)隊(duì)能力和耐心的培訓(xùn)能力,很快的升到組長(zhǎng)(兼職最高職位)的職位,在這段時(shí)間有深深的體會(huì)到了團(tuán)隊(duì)協(xié)作的重要性,我深知一個(gè)人的能力只能是代表自己,一個(gè)團(tuán)隊(duì)的協(xié)作能力才是組織的靈魂所在。通過(guò)那段時(shí)間的鍛煉與深造,我能夠獨(dú)立的解決學(xué)費(fèi)和生活費(fèi),還自己攢錢報(bào)了駕校。
除此之外,二零一零年七月初到八月末在北京懷柔區(qū)歐曼汽車配件廠當(dāng)過(guò)機(jī)器控制員,負(fù)責(zé)半自動(dòng)化機(jī)器的生產(chǎn)和維護(hù)工作,我自信能夠適應(yīng)北京的快節(jié)奏生活,能夠吃苦耐勞。
我有很好的自學(xué)能力,計(jì)算機(jī)二級(jí)和java基礎(chǔ)都是自己學(xué)完成。現(xiàn)在專業(yè)的學(xué)習(xí)了java技術(shù),自信能夠成為一個(gè)好的程序員,希望您能給我一次展現(xiàn)自我的機(jī)會(huì),我一定會(huì)全身心的投入到工作中去,不辜負(fù)您的期盼!
尊敬的領(lǐng)導(dǎo),期待您的慧眼垂青!靜候佳音!
祝:貴單位事業(yè)興旺!
第五篇:JAVA課程設(shè)計(jì)
JAVA程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告
目 錄
一、項(xiàng)目背景及意義:...............................................2
二、系統(tǒng)描述...............................................................2
三、分析與設(shè)計(jì)...........................................................3 1.分析.......................................................................3 2.功能模塊劃分.......................................................3 3.功能模塊流程圖...................................................5 4.各模塊的關(guān)鍵代碼...............................................5
四、系統(tǒng)測(cè)試...............................................................5
五、課程設(shè)計(jì)進(jìn)度.....................................................13
六、心得體會(huì).............................................................13
七、參考文獻(xiàn).............................................................14
八、附錄.....................................................................14
一、項(xiàng)目背景及意義:
記事本千百年來(lái)都在人類的工作生活中起到重要的作用,計(jì)算機(jī)革命電子產(chǎn)品未出現(xiàn)之前,人們的記事都是基于紙質(zhì)加筆兩者的簡(jiǎn)單記事,也即單純的文本記錄。直到計(jì)算機(jī)的出現(xiàn)和更新?lián)Q代,高科技電子產(chǎn)品大行其道,人們?nèi)找鎸⒃诩堎|(zhì)上的記事轉(zhuǎn)移到將事件記錄在個(gè)人電子設(shè)備如PC上,現(xiàn)在基于電子移動(dòng)設(shè)備如手機(jī)和平板等的記事本app開(kāi)發(fā)更是迅猛,功能更加豐富多彩,能記錄的不單純是文本了,人們能將聲音和圖片甚至視頻結(jié)合起來(lái),將一件事“有聲有色”地記錄下來(lái),保存在個(gè)人電子設(shè)備產(chǎn)品中。近年來(lái)產(chǎn)生的采用云存儲(chǔ)技術(shù)的“云筆記”,更是能讓人們隨時(shí)隨地將集文本、語(yǔ)音、圖像和視頻于一體的事件記錄保存在所謂的“云端”,能同步到個(gè)人其他設(shè)備中,解決了個(gè)人資料和信息跨平臺(tái)跨地點(diǎn)的管理問(wèn)題。
現(xiàn)在我們以有限的資源以及智慧力量,用Java語(yǔ)言編寫一個(gè)可以在裝有jar模擬器的個(gè)人電子移動(dòng)設(shè)備上使用的簡(jiǎn)單記事本軟件,沒(méi)視頻記錄功能和基于網(wǎng)絡(luò)功能但卻能集文本、聲音和圖像于一起記錄的功能的記事本,我們將輕便和簡(jiǎn)潔走向極致!所以此記事本軟件操作起來(lái)簡(jiǎn)單易上手,能給帶來(lái)同學(xué)簡(jiǎn)單便捷的記事體驗(yàn)。另外,這不單純是個(gè)人人都可以打開(kāi)的記事本,使用時(shí)需要賬號(hào)密碼登陸,因此能較好地保障個(gè)人隱私。
二、系統(tǒng)描述
Java的前身是Oak,它一開(kāi)始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來(lái)它的開(kāi)發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語(yǔ)言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來(lái),Java編程語(yǔ)言及平臺(tái)成功地運(yùn)用在網(wǎng)絡(luò)計(jì)算及移動(dòng)等各個(gè)領(lǐng)域。Java的體系結(jié)構(gòu)由Java語(yǔ)言、Java class、Java API、Java虛擬機(jī)組成。它具有簡(jiǎn)單、面向?qū)ο蟆⒔?、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺(tái)標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開(kāi)發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡(jiǎn)稱JDK是大多開(kāi)發(fā)工具的基礎(chǔ)。以上的每種開(kāi)發(fā)工具都有優(yōu)缺點(diǎn),對(duì)于開(kāi)發(fā)者來(lái)說(shuō),重要的是要根據(jù)自己的開(kāi)發(fā)規(guī)模、開(kāi)發(fā)內(nèi)容和軟硬件環(huán)境等因素來(lái)選擇一種合適的開(kāi)發(fā)工具。
在本程序設(shè)計(jì)中,因?yàn)樾枰_(kāi)發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的eclipse開(kāi)發(fā)工具。
三、分析與設(shè)計(jì)
1.分析
現(xiàn)在網(wǎng)絡(luò)上各種文檔編輯器數(shù)不勝數(shù),有EmEditor,UEStudio,GridinSoft Notepad,Notepad++,win32pad,SkimEdit,UniRed,xint。功能也是應(yīng)有盡有,有能改變字體的,有能改變文字顏色的。但是,這些軟件又存在各種各樣的瑕疵或問(wèn)題:有的文件體積相對(duì)于一般文字編輯來(lái)說(shuō)太大;有的功能太繁雜,使初級(jí)使用者一時(shí)難以掌握。僅從日常應(yīng)用方面來(lái)說(shuō),一個(gè)文本編輯器只需一些簡(jiǎn)單實(shí)用的功能就夠了。本程序設(shè)計(jì)就是依照這樣一種使用需要設(shè)計(jì)了一個(gè)簡(jiǎn)單的筆記本程序。2.功能模塊劃分
程序構(gòu)建的記事本程序具有Windows系統(tǒng)記事本工具基本功能,并且能夠創(chuàng) 建多個(gè)不同的用戶和保存圖片功能。以下是具體說(shuō)明: 第一部 登陸界面
(1)用戶名和密碼輸入文本框,供已注冊(cè)的用戶輸入用戶名和密碼。(2)登陸控件,在用戶名和密碼正確的前提下,進(jìn)入軟件主界面。
(3)注冊(cè)控件,點(diǎn)擊此按鈕,將進(jìn)入用戶創(chuàng)建,創(chuàng)建之后用戶名和密碼會(huì)自動(dòng)保存在電腦的相應(yīng)文件中。第一部分 菜單欄
(1)菜單中有“新健”,“刪除”,“顯示”,“菜單”,“幫助”五個(gè)主菜單。(2)“新建”有“新建筆記”“新建筆記本”二個(gè)子菜單:分別用于創(chuàng)建新的筆記和新的筆記本。
(3)“刪除”中有“刪除筆記”和“刪除筆記本”二個(gè)子菜單,和“新建”相對(duì)應(yīng)。
(4)“顯示”中可以選擇界面的風(fēng)格,有Metal風(fēng)格、Windows風(fēng)格、Motif風(fēng)格、Nimbus風(fēng)格;還有界面排版的選擇,可以選擇水平顯示或垂直顯示。(5)“幫助”菜單中有關(guān)于筆記本程序的說(shuō)明,作者等信息。第二部分 筆記本排列區(qū)
顯示用戶創(chuàng)建的所有筆記本。第三部分 筆記顯示排列區(qū)
此處主要顯示選中筆記本中的所有筆記,并且可以在此區(qū)右擊來(lái)創(chuàng)建、刪除筆記、查看筆記,當(dāng)然也可以在菜單欄中的“新建”和“刪除”菜單中創(chuàng)建和刪除筆記。
第四部分 筆記編輯區(qū)
此部分為用戶設(shè)計(jì)選擇操作和右鍵操作,可以在筆記中插入圖片、更改字體顏色、和插入時(shí)間;方便用戶進(jìn)行一系列的編輯操作,增強(qiáng)本記筆記本的用戶體驗(yàn)性能。
3.功能模塊流程圖
4.各模塊的關(guān)鍵代碼
1構(gòu)造函數(shù)創(chuàng)建窗口界面 主菜單,子菜單
public MainFrame(String name){
this.name=name;
this.setUser_path(“Users/”+name);
this.setBook_Path(this.getUser_path()+“/默認(rèn)筆記本”);
this.setNote_Path(this.getBook_Path()+“/默認(rèn)筆記”);//
一、菜單界面
menu=new Menu(this);
/**
二、創(chuàng)建三個(gè)JPanel *1.l筆記正文 TextPanel
*2.筆記名目錄及查找方式 DirectoryPanel *3.筆記類型目錄及排序方式選擇 NoteTypePane */
/*筆記正文部分*******/ TextPanel=new JPanel();rightPanel=new RightPanel(TextPanel,this);
} /*文件名目錄部分******/
DirectoryPanel=new JPanel();midPanel =new MidPanel(DirectoryPanel,this);/*筆記類型目錄部分*****/
NoteTypePanel =new JPanel();leftPanel=new LeftPanle(NoteTypePanel,this);leftPanel.update_Left_view();
//
三、處理拆分窗格
splitM_R =new JSplitPane(1,DirectoryPanel,TextPanel);splitM_R.setOneTouchExpandable(true);splitL_M =new JSplitPane(1,NoteTypePanel,splitM_R);splitL_M.setOneTouchExpandable(true);this.add(splitL_M);
//
四、設(shè)置標(biāo)題等
this.setTitle(name+“ 的筆記本”);this.setLocation(200,100);this.setSize(1000,600);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);2 添加右鍵菜單并為其添加監(jiān)聽(tīng)器
public RightPanel(JPanel panel,MainFrame mainFrame)
{ this.mainFrame=mainFrame;this.panel=panel;
//創(chuàng)建一個(gè) 文本域存放文字 JTextArea textPane =new JTextPane();//設(shè)置自動(dòng)換行
textPane.setFont(new Font(“", 1, 12));jsp_Pane=new JScrollPane(textPane);//滾輪
//設(shè)置鼠標(biāo)右擊彈框效果
//cut
cutItem=new JMenuItem(”Cut“,new ImageIcon(”image/cut.png“));
cutItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl x“));//設(shè)置快捷鍵 ”ctrl x“
cutItem.addActionListener(this);
//copy
copyItem=new JMenuItem(”Copy“,new ImageIcon(”image/copy.png“));
copyItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl x“));//設(shè)置快捷鍵 ”ctrl O“
copyItem.addActionListener(this);
//paste
pasteItem=new JMenuItem(”Paste“,new ImageIcon(”image/haha.png“));
pasteItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl v“));//設(shè)置快捷鍵 ”ctrl v“
pasteItem.addActionListener(this);
saveItem=new JMenuItem(”Save“,new ImageIcon(”image/save.png“));
saveItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl s“));
saveItem.addActionListener(this);
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
if(e.getActionCommand()==”Cut“){//剪切
textPane.cut();}else if(e.getActionCommand()==”Copy“){//復(fù)制
textPane.copy();}else if(e.getActionCommand()==”Paste“){//粘貼
textPane.paste();}else if(e.getActionCommand()==”Save“){//保存
this.book_Save();}else if(e.getSource()==image_Button){//插入圖片
String temp=Tools.open_Choose();if(!temp.equals(”not“)){
textPane.insertIcon(new ImageIcon(temp));}
}else if(e.getSource()==font_Button){//修改字體顏色
Color c=JColorChooser.showDialog(this, ”Color“, Color.black);textPane.setForeground(c);}else if(e.getSource()==timeButton){//插入時(shí)間
Date now = new Date();SimpleDateFormat dateFormat = new SimpleDateFormat(”yyyy/MM/dd HH:mm:ss“);//可以方便地修改日期格式
String hehe = dateFormat.format(now);
textPane.replaceSelection(hehe);
} 設(shè)為Document類型
public static void setDocument(File file){
try {
} JTextPane tempPane=new JTextPane();FileOutputStream outputStream=new FileOutputStream(file);ObjectOutputStream oos=new ObjectOutputStream(outputStream);oos.writeObject(tempPane.getDocument());
oos.close();} catch(FileNotFoundException e){ // TODO Auto-generated catch block
e.printStackTrace();} catch(IOException e){ // TODO Auto-generated catch block
e.printStackTrace();} 系統(tǒng)測(cè)試
1、筆記本登陸、用戶注冊(cè)
3、菜單欄 a.總菜單
b.新建菜單
c.刪除菜單
d.顯示菜單
e.“菜單”菜單
f.幫助 4.導(dǎo)入筆記、導(dǎo)出筆記、及插入圖片選擇
5.字體顏色選擇
6.插入時(shí)間
7、插入圖片
四、課程設(shè)計(jì)進(jìn)度
我們進(jìn)行了若干階段的部署,令課題研究可以在每個(gè)階段有條不紊地進(jìn)行。具體如下:
(一)理論學(xué)習(xí)和開(kāi)題論證
1.瀏覽相關(guān)網(wǎng)站,查閱與課題研究的相關(guān)理論、研究方法; 2.運(yùn)用文獻(xiàn)研究法,深入學(xué)習(xí)java理論,對(duì)要有關(guān)課題研究的知識(shí)進(jìn)行理論上的研究和探討。3,制訂研究計(jì)劃和方案。
(二)第一階段
1.以調(diào)查法為主開(kāi)展研究。(1)對(duì)有關(guān)java的課題設(shè)計(jì)進(jìn)行調(diào)查,查閱網(wǎng)絡(luò)上java應(yīng)用的設(shè)計(jì)案例,并分析和總結(jié),尋找思路。(2)對(duì)更新頻率快的java應(yīng)用進(jìn)行追蹤,采取觀察,評(píng)價(jià)、討論的方式分析和總結(jié)。
2.制訂第二階段實(shí)驗(yàn)方案,為下階段實(shí)驗(yàn)做準(zhǔn)備。
(三)第二階段
1.按計(jì)劃在繼續(xù)第一階段實(shí)驗(yàn)的基礎(chǔ)上,進(jìn)一步加強(qiáng)java應(yīng)用的實(shí)施和研究。采用實(shí)驗(yàn)法對(duì)上一階段的總結(jié)的結(jié)論進(jìn)行驗(yàn)證和拓展。
2.讓同學(xué)體驗(yàn)一下我們初步完成的作品,根據(jù)他們用完之后的感受,進(jìn)一步修正作品存在的問(wèn)題,完善作品。
(四),總結(jié)階段
1.收集和整理研究資料,參照相關(guān)書籍分析和研究實(shí)驗(yàn)情況 2.制訂總結(jié)階段計(jì)劃 3.總結(jié)和提煉研究成果 4.全面總結(jié)實(shí)驗(yàn)工作 5.解題論證
6.成果展示(課題報(bào)告)(五)總結(jié)階段(2013.12)整理材料,撰寫課題報(bào)告。
五、心得體會(huì)
此次課程設(shè)計(jì)由我們小組一起共同合作完成,花費(fèi)了差不多兩個(gè)月的時(shí)間。在這期間我們共同協(xié)作,互幫互助取得了很好的效率,也為我們構(gòu)建友好的同學(xué)關(guān)系,學(xué)習(xí)氣氛良好做出了一定的貢獻(xiàn)。在這期間我領(lǐng)略到了團(tuán)隊(duì)協(xié)作的重要性,13 也看到了團(tuán)隊(duì)合作的高效率性。還有通過(guò)這次試驗(yàn)我們領(lǐng)悟到了團(tuán)隊(duì)的力量是巨大的,也學(xué)習(xí)到的一些學(xué)習(xí)方法,比如追查API,如何在短時(shí)間內(nèi)學(xué)習(xí)一個(gè)自己不懂的東西那就是利用好所有的搜索引擎,多去圖書館找資料。總之此次課程設(shè)計(jì)我們不僅長(zhǎng)了學(xué)科知識(shí),在生活上我也長(zhǎng)了見(jiàn)識(shí)。
六、參考文獻(xiàn)
a.黃曉東 等編著 Java課程設(shè)計(jì)案例精編(第二版)[M].北京:中國(guó)水利水電出版社,2007 b.李興華 等編著 Java開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典Java開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典 北京:清華大學(xué)出版社,2009 C.李尊朝 蘇軍 Java程序設(shè)計(jì)(第二版)圖形用戶界面設(shè)計(jì)、Swing組件 中國(guó)鐵道出版社,2007
七、附錄
1.程序結(jié)構(gòu) 2.程序
(1)Tools.java package common;
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;
import javax.swing.*;
public class Tools {
/**打開(kāi)選擇框 返回詳細(xì)地址*/ public static String open_Choose(){
JFileChooser jfc1=new JFileChooser();
jfc1.setDialogTitle(”請(qǐng)選擇...“);
int judge=jfc1.showOpenDialog(null);
jfc1.setVisible(true);
//得到文件的完全路徑
if(judge==JFileChooser.APPROVE_OPTION)
return(jfc1.getSelectedFile().getAbsolutePath());
else
return ”not“;} /**保存選擇框 返回詳細(xì)地址*/ public static String save_Choose(){
JFileChooser jfc1=new JFileChooser();
jfc1.setDialogTitle(”請(qǐng)選擇...“);
int judge=jfc1.showSaveDialog(null);
jfc1.setVisible(true);
//得到文件的完全路徑
if(judge==JFileChooser.APPROVE_OPTION)
return(jfc1.getSelectedFile().getAbsolutePath());
else
return ”not“;
}
/**顯示對(duì)話框,需要傳遞 標(biāo)題和顯示內(nèi)容*/ public static void showMessage(String text,String title){
JOptionPane.showMessageDialog(null,text,title,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION);} /**新建筆記時(shí)將筆記設(shè)為Document類型,方便存儲(chǔ)圖片,在本地不能打開(kāi)*/ public static void setDocument(File file){
try {
JTextPane tempPane=new JTextPane();
FileOutputStream outputStream=new FileOutputStream(file);
ObjectOutputStream oos=new ObjectOutputStream(outputStream);
oos.writeObject(tempPane.getDocument());
oos.close();
} catch(FileNotFoundException e){
// TODO Auto-generated catch block
e.printStackTrace();
} catch(IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
} } /**刪除文件 傳一個(gè)文件地址 返回一個(gè)boolean 為了方便刪除文件夾才將此方法提取出來(lái)*/ public static boolean deleteFile(String path){
File file=new File(path);
return(file.delete());}
/**刪除文件 傳一個(gè)文件地址
返回一個(gè)boolean 先刪除里面的文件再刪除文件夾*/ public static boolean deleteFolder(String path){
File folder=new File(path);
File[] list=folder.listFiles();
for(int i=0;i deleteFile(path+”/“+list[i].getName()); return(folder.delete());} } (2)User.java package common;/** * 處理用戶屬性 * 為用戶創(chuàng)建自己的專有途徑 * 如果有了則不創(chuàng)建 */ import java.io.*; import javax.swing.JTextPane;import javax.swing.text.Document; import view.MainFrame; public class User { public User(String name) { //如果第一次登錄的話,為用戶新建一個(gè)專屬區(qū) File file=new File(”Users/“+name); if(!file.exists()) { try { file.mkdir(); } catch(Exception e1){ e1.printStackTrace(); } //第一次登錄創(chuàng)建默認(rèn)筆記本 File book=new File(”Users/“+name+”/默認(rèn)筆記本“); try { book.mkdir(); } catch(Exception e1){ e1.printStackTrace(); } //第一次登錄創(chuàng)建默認(rèn)筆記 File note=new File(”Users/“+name+”/默認(rèn)筆記本“+”/默認(rèn)筆記.ser“); try { note.createNewFile(); Tools.setDocument(note); } catch(Exception e1){ e1.printStackTrace(); } } //構(gòu)造完畢 正式進(jìn)入筆記本 new MainFrame(name); } } (3)login_zhuce.java package login; import java.awt.*;import java.awt.event.*;import java.io.*; import javax.swing.*; import common.User;import view.MainFrame; public class login_zhuce extends JFrame implements ActionListener { JPanel jp0;JPanel jp1,jp2,jp3,jp4,jp5;JTextField jtf;JPasswordField jpf;JLabel jl1,jl2,jl3;JButton jb1,jb2,jb3;ImageIcon bg; public static void main(String[] args){ // TODO Auto-generated method stub login_zhuce lz = new login_zhuce();} public login_zhuce(){ try {//默認(rèn) NImbus風(fēng)格 UIManager.setLookAndFeel(”com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel“); } catch(ClassNotFoundException e){ // TODO Auto-generated catch block e.printStackTrace();} catch(InstantiationException e){ // TODO Auto-generated catch block e.printStackTrace();} catch(IllegalAccessException e){ // TODO Auto-generated catch block e.printStackTrace();} catch(UnsupportedLookAndFeelException e){ // TODO Auto-generated catch block e.printStackTrace();} jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jp4 = new JPanel();jp1.setOpaque(false);jp2.setOpaque(false);jp3.setOpaque(false);jp4.setOpaque(false); //no.1 jl1 = new JLabel(”用戶名“);jtf = new JTextField(10);jp1.add(jl1);jp1.add(jtf); //no.2 jl2 = new JLabel(”密 碼“);jpf = new JPasswordField(10);jp2.add(jl2);jp2.add(jpf);//3 jb1 = new JButton(”登陸“);jb1.addActionListener(this);jb1.setActionCommand(”denglu“);jb2 = new JButton(”取消“);jb2.addActionListener(this);jb2.setActionCommand(”quxiao“);jb3 = new JButton(”注冊(cè)“);jb3.addActionListener(this);jb3.setActionCommand(”zhuce“); jp3.add(jb1); jp3.add(jb2); jp3.add(jb3); this.setLayout(new GridLayout(4,1)); this.add(jp4); this.add(jp1); this.add(jp2); this.add(jp3); bg = new ImageIcon(”image//huashi.jpg“); jl3 = new JLabel(bg); jl3.setBounds(0, 0, 300, 200); this.getLayeredPane().add(jl3,new Integer(Integer.MIN_VALUE)); jp5 =(JPanel)this.getContentPane(); jp5.setOpaque(false);//設(shè)置透明 this.setTitle(”筆記本登陸“); this.setSize(300,200); // 獲取屏幕分辨率,以此設(shè)置程序出現(xiàn)在屏幕中央 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension testSize = getSize(); this.setLocation((screenSize.widthtestSize.width)/ 2,(screenSize.height-testSize.height)/ 2);this.setResizable(false);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals(”queding“)){ String st1 = ”ff“; String st2 = ”.txt“; String st3 = this.jtf1.getText(); String st4 = st1 + st3 +st2; System.out.println(st4); File f = new File(st4); if(!f.exists()){ String password1=new String(jtf2.getPassword()); String password2=new String(jtf3.getPassword()); System.out.println(password1); System.out.println(password2); if(!(password1.equals(password2))){ JOptionPane.showMessageDialog(null, ”兩次密碼輸入不一樣,請(qǐng)重新輸入“, ”錯(cuò)誤提示“,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION); this.jtf2.setText(null); this.jtf3.setText(null); } else { try { f.createNewFile(); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } FileWriter fw = null; BufferedWriter bw = null; try { fw = new FileWriter(st4,true); bw = new BufferedWriter(fw); bw.write(st3+”rn“); bw.close(); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); } finally{ try { fw.close(); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } try { fw = new FileWriter(st4,true); bw = new BufferedWriter(fw); bw.write(this.jtf2.getPassword()); bw.close(); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); } finally{ try { fw.close(); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } JOptionPane.showMessageDialog(null, ”創(chuàng)建賬戶成功“, ”恭喜你“,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION); this.dispose(); login_zhuce lz = new login_zhuce(); } } else { JOptionPane.showMessageDialog(null,”該用戶名已被占用,請(qǐng)重新輸入用戶名“,”錯(cuò)誤提示“,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION); System.out.println(”該用戶名已被占用,請(qǐng)重新輸入用戶名“); this.jtf1.setText(null); } // if(this.jpf1.getText()!=this.jpf2.getText()){ // JOptionPane.showMessageDialog(null, ”兩次密碼輸入不一樣,請(qǐng)重新輸入“, ”錯(cuò)誤提示“, // JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION);// this.jpf1.setText(null);// this.jpf2.setText(null);// } } else if(e.getActionCommand().equals(”quxiao“)){ this.dispose(); System.exit(0); } } } (5)LefgPanle.java package view;/** * 將卡片布局修改 修改成僅有兩片 * 第一片 所有筆記 按鈕 * 第二片 所有筆記 目錄 */ import java.awt.*;import java.awt.event.*;import java.io.*; import javax.swing.*; public class LeftPanle extends JPanel implements ActionListener,MouseListener{ /**************筆記本類型部分聲明*****************/ CardLayout cardLayout;//卡片布局的方式 JPanel firstPanel,secondPanel;//分別存儲(chǔ)兩片 //第一片聲明 JPanel allBookPanel,firstTempPanel;//所有筆記 JButton allBook;//所以筆記,排序,回收站的按鈕 JScrollPane allBookjsp;//第二片聲明 JPanel secondTempPanel,timePaenl_o;JButton allBook_o;//所以筆記,排序,回收站的按鈕 JScrollPane timePaenljsp_o; //處理文件部分內(nèi)容 File book;String [] book_name;JLabel[] member; JPanel panel;MainFrame mainFrame;public final int TOTAL=20; /**************筆記本類型部分聲明結(jié)束*****************/ public LeftPanle(JPanel panel,MainFrame mainFrame){ this.mainFrame=mainFrame;this.panel=panel;//處理第一片***11111111111 //設(shè)置初始界面 顯示 所以筆記,排序,回收站的按鈕 //ImageIcon imageIcon=new ImageIcon(”image/note.png“);allBook=new JButton(”所有筆記“,new ImageIcon(”image/expand.png“));allBook.addActionListener(this);//點(diǎn)擊按時(shí)間排序時(shí)顯示第二片 allBookPanel=new JPanel(new GridLayout(TOTAL,1,1,4));member=new JLabel[TOTAL];for(int i=0;i member[i]=new JLabel(”“); member[i].addMouseListener(this);} allBookjsp=new JScrollPane(allBookPanel);//滾動(dòng) firstPanel=new JPanel(new BorderLayout());//將第一片設(shè)置為邊界布局 firstPanel.add(allBook,”North“);firstPanel.add(allBookjsp); //處理第二片***222222 //僅有一個(gè)按鈕 allBook_o=new JButton(”所有筆記“,new ImageIcon(”image/collapse.png“));allBook_o.addActionListener(this);//點(diǎn)擊所有筆記時(shí) 顯示第一片 secondPanel=new JPanel(new BorderLayout());//將第二片設(shè)為 邊界布局 secondPanel.add(allBook_o,”North“); //進(jìn)行卡片布局 cardLayout=new CardLayout();panel.setLayout(cardLayout);panel.add(firstPanel,”1“);panel.add(secondPanel,”2“); } //更新leftPanel中的筆記本,在新建或刪除筆記本是需要刷新 并附帶刷新右邊兩個(gè)Panel public void update_Left_view(){ book=new File(mainFrame.getUser_path()); book_name=book.list(); if(book.exists()) { for(int i=0;i { member[i].setText(”“); member[i].setIcon(null); member[i].removeMouseListener(this); } for(int i=0;i { //為每個(gè)好友設(shè)置頭像和名字,每一個(gè)好友用 JLabel組件 存放 ImageIcon imageIcon=new ImageIcon(”image/note.png“); member[i].setText(book_name[i]); member[i].setIcon(imageIcon); member[i].addMouseListener(this);//為每一種筆記的排序方式注冊(cè)監(jiān)聽(tīng) allBookPanel.add(member[i],i);//將筆記添加到所有筆記面板 } mainFrame.setBook_Path(mainFrame.getUser_path()+”/“+book_name[0]); mainFrame.midPanel.update_Mid_View(); } } @Override public void mouseClicked(MouseEvent e){ // TODO Auto-generated method stub //將選中部分字體設(shè)為紅色 JLabel jl = null; for(int i=0;i { if(e.getComponent().equals(member[i])) { jl=(JLabel)e.getSource(); jl.setForeground(Color.red); } else { member[i].setForeground(Color.black); // // // // } } //保存當(dāng)前筆記本的路徑 如...mainFrame.setBook_Path(book.getAbsolutePath()+”“+jl.getText());//點(diǎn)擊打開(kāi)一個(gè)筆記本 刷新中間的目錄 mainFrame.midPanel.update_Mid_View(); } @Override public void mousePressed(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e){ // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e){ // TODO Auto-generated method stub JLabel jl=(JLabel)e.getSource();jl.setForeground(Color.red);//jl.setFont(new Font(”“,1,30));//在筆記本界面操作 允許刪除筆記本 不允許刪除筆記 mainFrame.menu.delete_item[0].setEnabled(false);//不允許刪除筆記 mainFrame.menu.delete_item[1].setEnabled(true);//允許刪除筆記本 } @Override public void mouseExited(MouseEvent e){ // TODO Auto-generated method stub JLabel jl=(JLabel)e.getSource();jl.setForeground(Color.black);//jl.setFont(new Font(”“,1,12));} @Override public void actionPerformed(ActionEvent e){ // TODO Auto-generated method stub if(e.getSource()==allBook){ //cardLayout.show(this.getContentPane(), ”2“); cardLayout.next(panel);}else if(e.getSource()==allBook_o){ //cardLayout.show(this.getContentPane(), ”1“); cardLayout.next(panel); } } } (6)MainFrame.java package view;/** * 筆記本 java版 * 1、將主界面分為四塊 北邊的菜單 以及左中右的筆記本目錄,筆記目錄和筆記內(nèi)容 * 2、左邊目錄為卡片布局,實(shí)現(xiàn)點(diǎn)了”所有筆記“彈出所有筆記的效果 * 3、中間顯示筆記目錄 采用網(wǎng)格布局 每個(gè)網(wǎng)格用了JMenuItem * 4、右邊是一個(gè)JTextArea可能會(huì)改成JTextPane * 5、實(shí)現(xiàn)了新建刪除筆記(本),但界面刷新有點(diǎn)問(wèn)題(會(huì)重疊) * 6、采用MVC的思想實(shí)現(xiàn)時(shí)事刷新界面的效果 * 7、鼠標(biāo)右擊刪除新建 測(cè)試成功(鼠標(biāo)右擊是筆記本的新建與刪除沒(méi)有) * 8、注冊(cè)登錄系統(tǒng) 已測(cè)試成功 在包login里面 * 9、圖片的問(wèn)題已成功解決 * 10、可以更改字體顏色(大小沒(méi)有寫),以及插入時(shí)間等 * 11、顯示處添加實(shí)現(xiàn)多種版本的切換(如可切換成windows) */ import java.awt.*;import java.awt.event.*;import javax.swing.*; import common.User; public class MainFrame extends JFrame implements ActionListener{ Menu menu;//連接菜單欄 JPanel NoteTypePanel,DirectoryPanel,TextPanel;//三個(gè)大Panel JSplitPane splitM_R,splitL_M; LeftPanle leftPanel;//左邊第一個(gè)Panel MidPanel midPanel;//連接中間Panel RightPanel rightPanel;//連接右邊Panel //存放路徑 public String name=null;public String user_path=null;public String book_Path=null;public String note_Path=null; public MainFrame(String name){ this.name=name; this.setUser_path(”Users/“+name); this.setBook_Path(this.getUser_path()+”/默認(rèn)筆記本“); this.setNote_Path(this.getBook_Path()+”/默認(rèn)筆記“); // 一、菜單界面 menu=new Menu(this); /** 二、創(chuàng)建三個(gè)JPanel *1.l筆記正文 TextPanel *2.筆記名目錄及查找方式 DirectoryPanel *3.筆記類型目錄及排序方式選擇 NoteTypePane */ /*筆記正文部分*******/ TextPanel=new JPanel(); rightPanel=new RightPanel(TextPanel,this); /*文件名目錄部分******/ DirectoryPanel=new JPanel(); midPanel =new MidPanel(DirectoryPanel,this); /*筆記類型目錄部分*****/ NoteTypePanel =new JPanel(); leftPanel=new LeftPanle(NoteTypePanel,this); leftPanel.update_Left_view(); // 三、處理拆分窗格 splitM_R =new JSplitPane(1,DirectoryPanel,TextPanel); splitM_R.setOneTouchExpandable(true); splitL_M =new JSplitPane(1,NoteTypePanel,splitM_R); splitL_M.setOneTouchExpandable(true); this.add(splitL_M); // 四、設(shè)置標(biāo)題等 this.setTitle(name+” 的筆記本“); this.setLocation(200,100); this.setSize(1000,600); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } this.setVisible(true);} //為了方便后面的垂直和水平顯示 public void showStyle(int show){ this.remove(splitL_M);//先把以前的去掉重新添加 splitM_R =new JSplitPane(show,DirectoryPanel,TextPanel);splitM_R.setOneTouchExpandable(true); splitL_M =new JSplitPane(1,NoteTypePanel,splitM_R);splitL_M.setOneTouchExpandable(true);this.add(splitL_M);this.setVisible(true);} @Override public void actionPerformed(ActionEvent e){ // TODO Auto-generated method stub } public String getUser_path(){ return user_path;} public void setUser_path(String user_path){ this.user_path = user_path;} public String getBook_Path(){ return book_Path;} public void setBook_Path(String book_Path){ this.book_Path = book_Path;} public String getNote_Path(){ return note_Path;} public void setNote_Path(String note_Path){ this.note_Path = note_Path;} (7)package view; import java.awt.*;import java.awt.event.*;import java.io.*; import javax.swing.*;import javax.swing.text.Document;import javax.swing.text.StyledDocument; import common.Tools;import common.User;import login.login_zhuce; public class Menu extends JFrame implements ActionListener{ //菜單部分聲明 JMenuBar menuBar=null;//菜單主干 JMenu newNote_menu,deliteNote_menu,show_menu,menu_menu,help_menu;//菜單組件 樹(shù)干 //處理新建筆記菜單 newNote_menu JMenuItem[] newNote_item={ new JMenuItem(”新建筆記“),new JMenuItem(”新建筆記本“) };//處理刪除deliteNote_menu JMenuItem[] delete_item={ new JMenuItem(”刪除筆記“),new JMenuItem(”刪除筆記本“) }; //處理顯示 JMenuItem[] show_item={ new JMenuItem(”Metal風(fēng)格“),new JMenuItem(”Windows風(fēng)格“),new JMenuItem(”Motif風(fēng)格“),new JMenuItem(”Nimbus風(fēng)格“),new JMenuItem(”水平顯示“),new JMenuItem(”垂直顯示“) }; //處理menu_menu JMenuItem[] menu_item={ new JMenuItem(”丨賬戶“),new JMenuItem(”丨導(dǎo)入“),34 new JMenuItem(”丨導(dǎo)出“),new JMenuItem(”丨注銷“),new JMenuItem(”丨退出“) }; //處理help_menu JMenuItem[] help_item={ new JMenuItem(”關(guān)于作者“),new JMenuItem(”關(guān)于筆記本“)}; MainFrame mainFrame; public Menu(MainFrame mainFrame){ this.mainFrame=mainFrame;// 一、先處理菜單 menuBar=new JMenuBar();//各菜單menu[0]menu[1]menu[2]menu[3]menu[4] newNote_menu=new JMenu(”新建“);deliteNote_menu=new JMenu(”刪除“);deliteNote_menu.setToolTipText(”選中筆記(本)時(shí)才可刪除“);show_menu=new JMenu(”顯示“);help_menu=new JMenu(”幫助“);menu_menu=new JMenu(”菜單“); //將菜單項(xiàng)添加到各菜單 for(int i=0;i 菜單 newNote_menu.add(newNote_item[i]);for(int i=0;i deliteNote_menu.add(delete_item[i]);for(int i=0;i show_menu.add(show_item[i]);for(int i=0;i help_menu.add(help_item[i]);for(int i=0;i { menu_menu.add(menu_item[i]); if(i==0||i==2)//添加分隔線 將導(dǎo)入和導(dǎo)出框起來(lái) menu_menu.addSeparator();} //添加事件監(jiān)聽(tīng) for(int i=0;i newNote_item[i].addActionListener(this); for(int i=0;i delete_item[i].addActionListener(this); for(int i=0;i show_item[i].addActionListener(this); for(int i=0;i help_item[i].addActionListener(this); for(int i=0;i menu_item[i].addActionListener(this); //將菜單 添加到主干中 menuBar.add(newNote_menu); menuBar.add(deliteNote_menu); menuBar.add(show_menu); menuBar.add(menu_menu); menuBar.add(help_menu); mainFrame.add(menuBar,”North“); } //構(gòu)造完畢 //實(shí)現(xiàn)風(fēng)格轉(zhuǎn)換 private void changeFlavor(int flavor)throws Exception { switch(flavor) { case 1: UIManager.setLookAndFeel(”javax.swing.plaf.metal.MetalLookAndFeel“); break; case 2: UIManager.setLookAndFeel(”com.sun.java.swing.plaf.windows.WindowsLookAndFeel“); break; case 3: UIManager.setLookAndFeel(”com.sun.java.swing.plaf.motif.MotifLookAndFeel“); break; case 4: UIManager.setLookAndFeel(”com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel“); break; } SwingUtilities.updateComponentTreeUI(this.getContentPane()); SwingUtilities.updateComponentTreeUI(mainFrame); } //實(shí)現(xiàn)監(jiān)聽(tīng)后的動(dòng)作 @Override public void actionPerformed(ActionEvent e){ // TODO Auto-generated method stub String str=e.getActionCommand(); if(str.equals(”新建筆記“)){ String note_name=null; note_name=JOptionPane.showInputDialog(null,”請(qǐng)輸入筆記的名字“,”新筆記“,JOptionPane.INFORMATION_MESSAGE |JOptionPane.OK_OPTION); //如果用戶點(diǎn)取消 或沒(méi)有輸入文件名 則不用新建 if(note_name!=null){ File file=new File(mainFrame.book_Path+”/“+note_name+”.ser“); if(!file.exists()) { try { file.createNewFile(); //將新建的筆記格式設(shè)為Document對(duì)象 Tools.setDocument(file); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); } //刷新中間和左邊的Panel mainFrame.midPanel.update_Mid_View(); } } }else if(str.equals(”新建筆記本“)){ String book_name=null; book_name=JOptionPane.showInputDialog(null,”請(qǐng)輸入筆記的名字“,”新筆記“,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION); if(book_name!=null){ File file=new File(mainFrame.getUser_path()+”/“+book_name); //System.out.println(”User_path:“+mainFrame.getUser_path()); if(!file.exists()) { try { file.mkdir(); //將筆記本路徑設(shè)為新建筆記本的路徑 mainFrame.setBook_Path(mainFrame.getUser_path()+”/“+book_name); mainFrame.leftPanel.update_Left_view(); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); } //改變的筆記本總數(shù) 刷新左邊Panel mainFrame.leftPanel.update_Left_view(); } } }else if(str.equals(”刪除筆記“)){ Tools.deleteFile(mainFrame.getNote_Path()); //刪除筆記之后需要刷新右邊的兩個(gè)Panel mainFrame.midPanel.update_Mid_View(); }else if(str.equals(”刪除筆記本“)){ Tools.deleteFolder(mainFrame.book_Path); //筆記本目錄發(fā)生改變 mainFrame.leftPanel.update_Left_view(); }else if(str.equals(”關(guān)于作者“)){ Tools.showMessage(”鄧偉杰、蘇俊欽、陳通、陳盛鋒、林健祺、尹國(guó)瑜、溫天宇、趙潮順“, ”幫助“); }else if(str.equals(”關(guān)于筆記本“)){ Tools.showMessage(”還存在許多BUG,望老師指正“, ”呵呵“); }else if(str.equals(”丨賬戶“)){ Tools.showMessage(”姓名:“+mainFrame.name, ”用戶信息“); }else if(str.equals(”丨導(dǎo)入“)){//即打開(kāi)一個(gè)筆記 String temp=Tools.open_Choose(); if(!temp.equals(”not“)) { FileInputStream inputStream=null; ObjectInputStream ois=null; try { inputStream=new FileInputStream(Tools.open_Choose()); ois=new ObjectInputStream(inputStream); mainFrame.rightPanel.textPane.setDocument((Document)ois.readObject()); mainFrame.rightPanel.book_Save(); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); }finally{ try { ois.close(); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } } }else if(str.equals(”丨導(dǎo)出“)){//即另存為一個(gè)筆記 String temp=Tools.open_Choose();if(!temp.equals(”not“)){ FileOutputStream outputStream=null; ObjectOutputStream oos=null; try { outputStream=new FileOutputStream(Tools.save_Choose()); oos=new ObjectOutputStream(outputStream); oos.writeObject(mainFrame.rightPanel.textPane.getDocument()); } catch(Exception e1){ // TODO Auto-generated catch block e1.printStackTrace(); }finally{ try { oos.close(); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } } }else if(str.equals(”丨注銷“)){ mainFrame.dispose();new login_zhuce();//注銷之后重新登錄 }else if(str.equals(”丨退出“)){ System.exit(0);}else if(str.equals(”垂直顯示“)){ mainFrame.showStyle(0);//重新調(diào)用一下拆分窗格 }else if(str.equals(”水平顯示“)){ mainFrame.showStyle(1);}else { try{ if(str.equals(”Metal風(fēng)格“)){ this.changeFlavor(1); }else if(str.equals(”Windows風(fēng)格“)){ this.changeFlavor(2); }else if(str.equals(”Motif風(fēng)格“)){ this.changeFlavor(3); }else if(str.equals(”Nimbus風(fēng)格“)){ this.changeFlavor(4); } }catch(Exception e1){ e1.printStackTrace(); } } } } (8)Midpanel.java package view; import java.awt.*; import javax.swing.*;import javax.swing.text.Document; import common.Tools; import java.awt.event.*;import java.io.*; public class MidPanel extends JPanel implements ActionListener,MouseListener{ JPanel panel;MainFrame mainFrame;/// JScrollPane jscroll2; JMenuItem[] items;File lists[]; JPanel jp1; //鼠標(biāo)右擊部分 JPopupMenu right_Click; JMenuItem delete_book,properties_book,new_book; public final int TOTAL=20;public String filename;public String temp_path=null;//右擊時(shí)記錄選中筆記的途徑 public MidPanel(JPanel panel, MainFrame main){ this.panel=panel; this.mainFrame=main; jp1=new JPanel(); jp1.setLayout(new GridLayout(TOTAL,1,1,4)); //初始化20個(gè)MenuItem items =new JMenuItem[TOTAL]; for(int j=0;j items[j]=new JMenuItem(”“); items[j].addMouseListener(this); } //處理鼠標(biāo)右擊問(wèn)題 right_Click=new JPopupMenu(); new_book=new JMenuItem(”New“);//新建筆記 delete_book=new JMenuItem(”Delete“);//刪除筆記 properties_book=new JMenuItem(”Properties“); delete_book.addActionListener(this); properties_book.addActionListener(this); new_book.addActionListener(this); //right_Click.right_Click.add(new_book); right_Click.addSeparator(); right_Click.add(delete_book); right_Click.add(properties_book); JLabel label=new JLabel(”All Note & Note All “); label.setEnabled(false); label.setBackground(Color.gray); jscroll2 = new JScrollPane(jp1);//為Panel添加滾動(dòng)條 panel.setLayout(new BorderLayout()); panel.add(label,”North“); panel.add(jscroll2); } //在新建或刪除是需要刷新,并附帶刷新 RightPanel中的內(nèi)容 public void update_Mid_View() { File file = new File(mainFrame.getBook_Path()); if(file.isDirectory()) { lists = file.listFiles(); for(int j=0;j items[j].setText(”“); items[j].setArmed(false); items[j].removeMouseListener(this);//避免某個(gè)筆記被刪除之后還可以被點(diǎn)的情況 } for(int i=0;i items[i].setText(lists[i].getName());//創(chuàng)建20個(gè)JLanel items[i].addActionListener(this); items[i].addMouseListener(this); jp1.add(items[i],i); //在該項(xiàng)上右擊彈出一個(gè)選擇框 items[i].setComponentPopupMenu(right_Click); } //更新右邊的Panel 里面應(yīng)該沒(méi)有內(nèi)容 mainFrame.rightPanel.update_Right_view(); } } public void showfile(int y){ String filename1 = lists[y].getAbsolutePath(); FileInputStream inputStream=null; ObjectInputStream ois = null; try { inputStream=new FileInputStream(filename1); ois=new ObjectInputStream(inputStream); mainFrame.rightPanel.textPane.setDocument((Document)ois.readObject()); } catch(Exception e){ // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { ois.close(); } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void actionPerformed(ActionEvent e){ // TODO Auto-generated method stub if(e.getActionCommand().equals(”New“)){ String note_name=JOptionPane.showInputDialog(null,”請(qǐng)輸入筆記的名字“,”新筆記“,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION); //如果用戶點(diǎn)了取消 則不用新建筆記 if(!note_name.equals(”null“)){ File file=new File(mainFrame.book_Path+”/“+note_name+”.ser“); if(!file.exists()) { try { file.createNewFile(); //為新建的筆記寫入一個(gè)空白的對(duì)象 避免打開(kāi)時(shí)報(bào)指針的錯(cuò)誤 Tools.setDocument(file); } catch(IOException e1){ // TODO Auto-generated catch block e1.printStackTrace(); } } //刷新中間和左邊的Panel mainFrame.midPanel.update_Mid_View(); } }else if(e.getActionCommand().equals(”Delete“)){ File file=new File(this.getTemp_path()); file.delete(); //刪除筆記之后需要刷新右邊的兩個(gè)Panel mainFrame.midPanel.update_Mid_View();}else if(e.getActionCommand().equals(”Properties“)){ Tools.showMessage(this.getTemp_path(),”筆記“);}else { mainFrame.rightPanel.textPane.setEditable(true); mainFrame.setNote_Path(mainFrame.getBook_Path()+”/“+e.getActionCommand()); for(int x=0;x if(e.getActionCommand().endsWith(lists[x].getName())) this.showfile(x); } } } @Override public void mouseClicked(MouseEvent arg0){ // TODO Auto-generated method stub //設(shè)置選中部分的情況 JMenuItem jmtemp=null;for(int i=0;i if(arg0.getComponent().equals(items[i])) { jmtemp=(JMenuItem)arg0.getSource(); jmtemp.setArmed(true); }else{ items[i].setArmed(false); } } //記錄被要在右邊顯示出內(nèi)容的筆記途徑 可以在菜單中刪除該筆記 mainFrame.setNote_Path(mainFrame.getBook_Path()+”/“+jmtemp.getText()); mainFrame.menu.delete_item[0].setEnabled(true);//允許刪除筆記 mainFrame.menu.delete_item[1].setEnabled(false);//不允許刪除筆記本 } @Override public void mouseEntered(MouseEvent arg0){ // TODO Auto-generated method stub JMenuItem jm=(JMenuItem)arg0.getSource();//將當(dāng)前筆記的途徑 存到輔助路徑中 this.setTemp_path(mainFrame.getBook_Path()+”/“+jm.getText());} @Override public void mouseExited(MouseEvent arg0){ // TODO Auto-generated method stub JMenuItem jm=(JMenuItem)arg0.getSource(); //jm.setBackground(new Color(238,238,238));} @Override public void mousePressed(MouseEvent arg0){ // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent arg0){ // TODO Auto-generated method stub } public String getTemp_path(){ return temp_path;} public void setTemp_path(String temp_path){ this.temp_path = temp_path;} } (9)RightPanel.java package view;/** * 改用JTextPane實(shí)現(xiàn)圖片即單個(gè)文字更改字體或顏色的功能 */ import java.awt.*;import java.awt.event.*;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date; import javax.swing.*;import javax.swing.text.Document; import common.Tools; public class RightPanel extends JPanel implements ActionListener{ JPanel panel; MainFrame mainFrame; //文本域 JTextPane textPane;JScrollPane jsp_Pane;//鼠標(biāo)右擊部分 JPopupMenu right_Click;JMenuItem cutItem,copyItem,pasteItem,saveItem;//插入圖片與更改字體 JToolBar toolBar;JButton image_Button,font_Button,timeButton; public RightPanel(JPanel panel,MainFrame mainFrame){ this.mainFrame=mainFrame; this.panel=panel; //創(chuàng)建一個(gè) 文本域存放文字 JTextArea textPane =new JTextPane(); //設(shè)置自動(dòng)換行 textPane.setFont(new Font(”“, 1, 12)); jsp_Pane=new JScrollPane(textPane);//滾輪 //設(shè)置鼠標(biāo)右擊彈框效果 //cut cutItem=new JMenuItem(”Cut“,new ImageIcon(”image/cut.png“)); cutItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl x“));//設(shè)置快捷鍵 ”ctrl x“ cutItem.addActionListener(this); //copy copyItem=new JMenuItem(”Copy“,new ImageIcon(”image/copy.png“)); copyItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl x“));//設(shè)置快捷鍵 ”ctrl O“ copyItem.addActionListener(this); //paste pasteItem=new JMenuItem(”Paste“,new ImageIcon(”image/haha.png“)); pasteItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl v“));//設(shè)置快捷鍵 ”ctrl v“ pasteItem.addActionListener(this); saveItem=new JMenuItem(”Save“,new ImageIcon(”image/save.png“)); saveItem.setAccelerator(KeyStroke.getKeyStroke(”ctrl s“)); saveItem.addActionListener(this); //將各菜單項(xiàng)添加到 右擊菜單組中 right_Click=new JPopupMenu(); //right_Click.right_Click.add(cutItem); right_Click.add(copyItem); right_Click.add(pasteItem); right_Click.addSeparator(); right_Click.add(saveItem); //為右擊注冊(cè)監(jiān)聽(tīng) textPane.setComponentPopupMenu(right_Click); //可以懂工具條部分 toolBar=new JToolBar(”工具“); image_Button=new JButton(”插入圖片“); image_Button.addActionListener(this); font_Button=new JButton(”更改字體顏色“); font_Button.addActionListener(this); timeButton = new JButton(”插入時(shí)間“); timeButton.setToolTipText(”點(diǎn)擊可以插入當(dāng)前時(shí)間“); timeButton.addActionListener(this); toolBar.add(image_Button); toolBar.add(font_Button); toolBar.add(timeButton); //將工具條和textPane添加到panel panel.setLayout(new BorderLayout()); panel.add(toolBar,”North“);panel.add(jsp_Pane);} //更新文本框 在新建或刪除 筆記或筆記本 的時(shí)候需要刷新 public void update_Right_view(){ textPane.setText(”“);textPane.setEditable(false);} //保存當(dāng)前筆記 public void book_Save(){ FileOutputStream outputStream=null;ObjectOutputStream oos=null;try { outputStream=new FileOutputStream(mainFrame.getNote_Path()); oos=new ObjectOutputStream(outputStream); oos.writeObject(textPane.getDocument());} catch(Exception e){ // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { oos.close(); } catch(IOException e){ // TODO Auto-generated catch block e.printStackTrace(); } } } @Override public void actionPerformed(ActionEvent e){ // TODO Auto-generated method stub if(e.getActionCommand()==”Cut“){//剪切 textPane.cut(); }else if(e.getActionCommand()==”Copy“){//復(fù)制 textPane.copy(); }else if(e.getActionCommand()==”Paste“){//粘貼 textPane.paste(); }else if(e.getActionCommand()==”Save“){//保存 this.book_Save(); }else if(e.getSource()==image_Button){//插入圖片 String temp=Tools.open_Choose(); if(!temp.equals(”not“)){ textPane.insertIcon(new ImageIcon(temp)); } }else if(e.getSource()==font_Button){//修改字體顏色 Color c=JColorChooser.showDialog(this, ”Color“, Color.black); textPane.setForeground(c); }else if(e.getSource()==timeButton){//插入時(shí)間 Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat(”yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式 String hehe = dateFormat.format(now); textPane.replaceSelection(hehe); } } }