欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      Java課程設(shè)計(jì)心得體會(huì)

      時(shí)間:2019-05-12 16:20:12下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《Java課程設(shè)計(jì)心得體會(huì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《Java課程設(shè)計(jì)心得體會(huì)》。

      第一篇:Java課程設(shè)計(jì)心得體會(huì)

      Java課程設(shè)計(jì)心得體會(huì)

      仿QQ交友網(wǎng)站是為了適應(yīng)網(wǎng)絡(luò)時(shí)代人們交友,交流等而創(chuàng)建的一個(gè)網(wǎng)站。通過本次課程設(shè)計(jì),我對(duì)web開發(fā)有了更深刻的認(rèn)識(shí)。

      仿QQ交友網(wǎng)站的每一個(gè)模塊實(shí)現(xiàn)的功能簡(jiǎn)單,JSP頁(yè)面主要實(shí)現(xiàn)頁(yè)面展示的功能,而servlet則負(fù)責(zé)頁(yè)面請(qǐng)求的跳轉(zhuǎn)以及對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的更新操作。

      回顧起此課程設(shè)計(jì),感慨頗多,從選題到定稿,從理論到實(shí)踐,在這些日子里,我們付出了很多的辛苦和精力,但是學(xué)到很多很多的東西,不僅鞏固了以前學(xué)過的知識(shí),還學(xué)到了很多書本上沒有的知識(shí)。通過這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合的重要性,只有把學(xué)的理論知識(shí)與實(shí)踐相結(jié)合,才能提高自己的實(shí)際動(dòng)手能力和思考的能力。

      其次,這次課程設(shè)計(jì)讓我們系統(tǒng)學(xué)習(xí)數(shù)據(jù)庫(kù)知識(shí),這對(duì)我們的編程能力有很大的提高。更為重要的是,這次課程設(shè)計(jì)是我們小組6人一起合力完成的,讓我們深刻體會(huì)到團(tuán)隊(duì)合作的重要性。當(dāng)然程序中依然有很大的不足,望老師加以批評(píng)和指正。

      第二篇:Java課程設(shè)計(jì)

      統(tǒng)一要求:

      設(shè)計(jì)成品(按難度自選一個(gè)到兩個(gè)完成)

      可分組或單獨(dú)完成,每組最多兩人,19周前交 1設(shè)計(jì)報(bào)告

      (1)本程序的功能描述

      (2)程序設(shè)計(jì)思想(數(shù)據(jù)結(jié)構(gòu)和各功能的實(shí)現(xiàn)辦法)(3)核心程序清單(應(yīng)有必要說明)2結(jié)果分析

      (1)本程序的局限性及改進(jìn)方法

      (2)應(yīng)用本程序的設(shè)計(jì)方法可以編寫哪些類似的程序 一:小型通訊管理系統(tǒng)

      通訊錄管理系統(tǒng)含有:輸入 顯示 查找 刪除

      要求

      1通訊錄的每一條信息包括姓名,單位,電話!(可用數(shù)組或數(shù)據(jù)庫(kù))2輸入功能:可以一次完成若干條信息的輸入.3顯示功能:完成全部通訊錄信息的顯示(一屏最多顯示10條,超過十條應(yīng)能夠自動(dòng)分屏顯示)4查找功能:完成按姓名查找通訊信息.5刪除功能:完成按姓名刪除通訊信息.6應(yīng)提供一個(gè)界面來調(diào)用各個(gè)功能,調(diào)用界面和各個(gè)功能的操作界面應(yīng)盡可能清晰美觀!

      二:個(gè)人簡(jiǎn)歷程序:(參照中華英才網(wǎng)http://004km.cn的創(chuàng)建個(gè)人簡(jiǎn)歷的選項(xiàng))

      通過文本框輸入姓名,通過單選按鈕設(shè)置性別,通過組合框選擇籍貫(列出省、市),文化程度、出生日期、現(xiàn)居住地。以及填寫教育經(jīng)歷、語(yǔ)言及方言等。

      請(qǐng)按自行安排界面排版方式,注意美觀性。

      三:多小球運(yùn)動(dòng)程序:

      請(qǐng)編寫一個(gè)多小球運(yùn)動(dòng)的程序,要求可以設(shè)置每個(gè)小球的半徑,初始書度,加速度。

      當(dāng)用戶點(diǎn)擊發(fā)射按鈕時(shí),程序按指定的彈出一個(gè)小球,當(dāng)小球碰到邊界線時(shí),碰撞為完全碰撞。

      要求每個(gè)小球?yàn)橐粋€(gè)線程,不考慮小球之間的碰撞。

      四:打字小程序。

      從屏幕頂端隨機(jī)落下不同的英文。如果在字符下落的過程中,用戶正確輸入對(duì)應(yīng)字符,字符消失,加1分;到字符落到底端還沒正確輸入,扣一分。

      給出最宗成績(jī)。程序可設(shè) 重新開始,暫停,練習(xí)時(shí)間,字符出現(xiàn)的數(shù)量,速度等。

      五:龜兔賽跑

      龜兔在同一個(gè)圓賽跑,要求可以設(shè)置龜兔跑一周的時(shí)間,兔比龜快。龜兔同時(shí)其跑,當(dāng)兔快龜一圈時(shí),計(jì)算器加1,并顯示在屏幕上。六:學(xué)生成績(jī)管理系統(tǒng)。

      完成一個(gè)班學(xué)生的成績(jī)管理。為完成程序功能,至少要有兩個(gè)這樣的功能模塊:

      l 輸入成績(jī) 2 查詢成績(jī)

      因?yàn)椴樵兡K中又分為:

      l 按學(xué)生查詢 2 按課程查詢

      所以為它們分別編寫函數(shù)。因?yàn)樯鲜鲞@些操作中要輸入某位學(xué)生和某門課程,所以再編寫兩個(gè)函數(shù)來輸出數(shù)組中的學(xué)生信息和課程信息并請(qǐng)用戶從中選擇:

      1顯示學(xué)生信息從中進(jìn)行選擇 2顯示課程信息從中進(jìn)行選擇

      系統(tǒng)管理員需要管理系統(tǒng)所有用戶的信息,包括用戶編號(hào)、名稱、備注等,可以對(duì)其添加刪除修改和啟用停用等操作。

      還需要為系統(tǒng)用戶劃分角色和權(quán)限,保證不同身份的用戶進(jìn)入后可以有不同的權(quán)限,如某科目的老師可以錄入本科目的成績(jī),學(xué)生只可以有查詢權(quán)限等。

      七:使用ServerSocket和Socket實(shí)現(xiàn)服務(wù)器支持多客戶機(jī)通信。當(dāng)有多個(gè)客戶向服務(wù)器提出時(shí)請(qǐng)求時(shí),服務(wù)器一端會(huì)分別為每個(gè)客戶從一個(gè)包含多行文字的文本文件中讀取一行文字,發(fā)送給每個(gè)客戶,直到文件讀完文件中所有行,服務(wù)器一端發(fā)出“bye”并停止運(yùn)行,客戶端也都停止運(yùn)行。

      八:編寫一個(gè)圖形用戶界面的應(yīng)用程序,在窗口中,有一個(gè)圖片循環(huán)地從窗口的左面移動(dòng)到窗口的右邊。當(dāng)鼠標(biāo)點(diǎn)擊窗口時(shí),圖片停止運(yùn)動(dòng),再次點(diǎn)擊圖片恢復(fù)運(yùn)動(dòng)。九:編寫程序,在文件中輸入若干個(gè)單詞(每個(gè)單詞可重復(fù)一次或多次)。編程實(shí)現(xiàn)統(tǒng)計(jì)每個(gè)單詞重復(fù)次數(shù),并對(duì)非重復(fù)的單詞進(jìn)行排序,將排序結(jié)果輸出到文件中。十. JDBC技術(shù)的應(yīng)用

      ——校園卡信息/學(xué)生信息/教師信息/圖書信息/宿舍信息/學(xué)生會(huì)/成績(jī)/課程/教室管理/公務(wù)員招考系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

      以校園卡信息管理、學(xué)生信息管理、教師信息管理、圖書信息管理、宿舍信息管理、學(xué)生會(huì)活動(dòng)管理、成績(jī)管理、教室管理等為例,使用JDBC-ODBC數(shù)據(jù)庫(kù)接口,完成對(duì)后臺(tái)數(shù)據(jù)庫(kù)的插入、刪除、修改、查詢等操作。數(shù)據(jù)庫(kù)系統(tǒng)可采用Sql Server、Access等,要根據(jù)完成的不同功能在數(shù)據(jù)庫(kù)系統(tǒng)中定義有關(guān)的各種信息表:如在教師信息管理系統(tǒng)中要設(shè)計(jì)教師基本信息表、教師學(xué)習(xí)進(jìn)修情況表、教師獎(jiǎng)懲情況表、教師上課情況表等。其他幾個(gè)子系統(tǒng)中數(shù)據(jù)表的設(shè)計(jì)由同學(xué)們根據(jù)實(shí)際的需求自主完成設(shè)計(jì)。十一.文本編輯器的設(shè)計(jì)與實(shí)現(xiàn)

      設(shè)計(jì)一個(gè)類似于Windows記事本(Notepad)的Java程序??梢源蜷_、新建、保存一個(gè)文本文件;對(duì)選中的文本進(jìn)行各種編輯操作(設(shè)置字體、字號(hào)、字型、對(duì)齊方式、背景、前景色、復(fù)制、粘貼、剪切、查找、替換等);在文本中能夠插入對(duì)象。十二..計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)

      設(shè)計(jì)一個(gè)能實(shí)現(xiàn)計(jì)算器功能的Java程序,可以進(jìn)行加、減、乘、除(另外可適當(dāng)加上階乘、正弦、余弦和指數(shù))運(yùn)算。十三.圖象瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)

      設(shè)計(jì)一個(gè)能實(shí)現(xiàn)圖象瀏覽與編輯功能的Java程序,包括如下功能:

      1)從已有的圖象文件列表中選擇某一個(gè),即可顯示該圖象,并可做旋轉(zhuǎn)等變換。2)在畫布區(qū)域上可以進(jìn)行各種規(guī)則圖形的繪制(如:線段、矩形、多邊形、圓等),還可通過鼠標(biāo)的拖動(dòng)自由繪圖。

      3)可以連續(xù)播放所選文件夾下的所有圖象。十四: 媒體播放器的設(shè)計(jì)與實(shí)現(xiàn)

      利用JMF(Java Media Framework)提供的API,實(shí)現(xiàn)圖像瀏覽、音頻播放、視頻播放功能。

      十五:局域網(wǎng)聊天程序的設(shè)計(jì)與實(shí)現(xiàn)

      該程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的聊天功能,包括服務(wù)器端程序和客戶端程序兩部分??蛻舳顺绦颍嚎蛇B接到服務(wù)器,并將消息發(fā)送到服務(wù)器端和接受服務(wù)器端發(fā)送來的信息。服務(wù)器端程序:可將消息發(fā)送到客戶端和接受客戶端發(fā)送來的信息 十六:基于Web的應(yīng)用

      ——網(wǎng)上超市/網(wǎng)上書店/網(wǎng)上花店/網(wǎng)上物流/網(wǎng)上招聘/同學(xué)錄/網(wǎng)上選課/網(wǎng)上考試系統(tǒng)的設(shè)計(jì)

      應(yīng)用JSP技術(shù),設(shè)計(jì)一個(gè)類似電子商務(wù)、電子政務(wù)類的簡(jiǎn)單應(yīng)用系統(tǒng),可以在網(wǎng)上動(dòng)態(tài)展示各類信息,并根據(jù)相應(yīng)的業(yè)務(wù)流程進(jìn)行必要的邏輯處理,系統(tǒng)信息可以進(jìn)行后臺(tái)維護(hù)。需要?jiǎng)討B(tài)顯示的信息要存放數(shù)據(jù)庫(kù)中,數(shù)據(jù)庫(kù)可以用Sql Server、Access;后臺(tái)管理要提供對(duì)數(shù)據(jù)庫(kù)中信息進(jìn)行動(dòng)態(tài)維護(hù)(包括添加、刪除、修改)的頁(yè)面。十七:益智類小游戲的設(shè)計(jì)與實(shí)現(xiàn)

      運(yùn)用多線程和多媒體技術(shù)設(shè)計(jì)一個(gè)簡(jiǎn)單的益智類小游戲,游戲內(nèi)容自行構(gòu)思,不得直接利用網(wǎng)上現(xiàn)有游戲程序,要求有人機(jī)交互和界面動(dòng)畫,游戲過程中有聲音效果,游戲成績(jī)能記錄、顯示。

      第三篇: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)目背景及意義:

      記事本千百年來都在人類的工作生活中起到重要的作用,計(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開發(fā)更是迅猛,功能更加豐富多彩,能記錄的不單純是文本了,人們能將聲音和圖片甚至視頻結(jié)合起來,將一件事“有聲有色”地記錄下來,保存在個(gè)人電子設(shè)備產(chǎn)品中。近年來產(chǎn)生的采用云存儲(chǔ)技術(shù)的“云筆記”,更是能讓人們隨時(shí)隨地將集文本、語(yǔ)音、圖像和視頻于一體的事件記錄保存在所謂的“云端”,能同步到個(gè)人其他設(shè)備中,解決了個(gè)人資料和信息跨平臺(tái)跨地點(diǎn)的管理問題。

      現(xiàn)在我們以有限的資源以及智慧力量,用Java語(yǔ)言編寫一個(gè)可以在裝有jar模擬器的個(gè)人電子移動(dòng)設(shè)備上使用的簡(jiǎn)單記事本軟件,沒視頻記錄功能和基于網(wǎng)絡(luò)功能但卻能集文本、聲音和圖像于一起記錄的功能的記事本,我們將輕便和簡(jiǎn)潔走向極致!所以此記事本軟件操作起來簡(jiǎn)單易上手,能給帶來同學(xué)簡(jiǎn)單便捷的記事體驗(yàn)。另外,這不單純是個(gè)人人都可以打開的記事本,使用時(shí)需要賬號(hào)密碼登陸,因此能較好地保障個(gè)人隱私。

      二、系統(tǒng)描述

      Java的前身是Oak,它一開始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語(yǔ)言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,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的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡(jiǎn)稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點(diǎn),對(duì)于開發(fā)者來說,重要的是要根據(jù)自己的開發(fā)規(guī)模、開發(fā)內(nèi)容和軟硬件環(huán)境等因素來選擇一種合適的開發(fā)工具。

      在本程序設(shè)計(jì)中,因?yàn)樾枰_發(fā)的是記事本程序,規(guī)模較小,內(nèi)容較少,所以選擇了適合初學(xué)者使用的eclipse開發(fā)工具。

      三、分析與設(shè)計(jì)

      1.分析

      現(xiàn)在網(wǎng)絡(luò)上各種文檔編輯器數(shù)不勝數(shù),有EmEditor,UEStudio,GridinSoft Notepad,Notepad++,win32pad,SkimEdit,UniRed,xint。功能也是應(yīng)有盡有,有能改變字體的,有能改變文字顏色的。但是,這些軟件又存在各種各樣的瑕疵或問題:有的文件體積相對(duì)于一般文字編輯來說太大;有的功能太繁雜,使初級(jí)使用者一時(shí)難以掌握。僅從日常應(yīng)用方面來說,一個(gè)文本編輯器只需一些簡(jiǎn)單實(shí)用的功能就夠了。本程序設(shè)計(jì)就是依照這樣一種使用需要設(shè)計(jì)了一個(gè)簡(jiǎn)單的筆記本程序。2.功能模塊劃分

      程序構(gòu)建的記事本程序具有Windows系統(tǒng)記事本工具基本功能,并且能夠創(chuàng) 建多個(gè)不同的用戶和保存圖片功能。以下是具體說明: 第一部 登陸界面

      (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)于筆記本程序的說明,作者等信息。第二部分 筆記本排列區(qū)

      顯示用戶創(chuàng)建的所有筆記本。第三部分 筆記顯示排列區(qū)

      此處主要顯示選中筆記本中的所有筆記,并且可以在此區(qū)右擊來創(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)聽器

      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í)和開題論證

      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)查法為主開展研究。(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)一步修正作品存在的問題,完善作品。

      (四),總結(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ì)合作的高效率性。還有通過這次試驗(yàn)我們領(lǐng)悟到了團(tuán)隊(duì)的力量是巨大的,也學(xué)習(xí)到的一些學(xué)習(xí)方法,比如追查API,如何在短時(shí)間內(nèi)學(xué)習(xí)一個(gè)自己不懂的東西那就是利用好所有的搜索引擎,多去圖書館找資料??傊舜握n程設(shè)計(jì)我們不僅長(zhǎng)了學(xué)科知識(shí),在生活上我也長(zhǎng)了見識(shí)。

      六、參考文獻(xiàn)

      a.黃曉東 等編著 Java課程設(shè)計(jì)案例精編(第二版)[M].北京:中國(guó)水利水電出版社,2007 b.李興華 等編著 Java開發(fā)實(shí)戰(zhàn)經(jīng)典Java開發(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 {

      /**打開選擇框 返回詳細(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ǔ)圖片,在本地不能打開*/ 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 為了方便刪除文件夾才將此方法提取出來*/ 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)聽

      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)擊打開一個(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)問題(會(huì)重疊)

      *

      6、采用MVC的思想實(shí)現(xiàn)時(shí)事刷新界面的效果

      *

      7、鼠標(biāo)右擊刪除新建 測(cè)試成功(鼠標(biāo)右擊是筆記本的新建與刪除沒有)

      *

      8、注冊(cè)登錄系統(tǒng) 已測(cè)試成功 在包login里面

      *

      9、圖片的問題已成功解決

      *

      10、可以更改字體顏色(大小沒有寫),以及插入時(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;//菜單組件

      樹干

      //處理新建筆記菜單 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)出框起來

      menu_menu.addSeparator();}

      //添加事件監(jiān)聽

      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)聽后的動(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)取消 或沒有輸入文件名

      則不用新建

      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)入“)){//即打開一個(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)右擊問題

      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)該沒有內(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ì)象 避免打開時(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)聽

      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);

      } } }

      第四篇:Java課程設(shè)計(jì)

      Java及J2EE課程設(shè)計(jì)題目

      1、文件檔案管理

      文件檔案管理系統(tǒng)主要對(duì)外來文件、下發(fā)文件和需要抄送的文件進(jìn)行統(tǒng)一管理。劃分為以下三個(gè)模塊:收文管理、發(fā)文管理、抄送文件。

      1.收文文件增加、刪除和修改,其字段有:收文編號(hào)、收件日期、文件標(biāo)題、內(nèi)容、發(fā)文單位、簽發(fā)人

      2.發(fā)文文件增加、刪除和修改,其字段有:發(fā)文編號(hào)、發(fā)件日期、文件標(biāo)題、內(nèi)容、收文單位、發(fā)件人

      3.抄送文件增加、刪除和修改,其字段有:文件編號(hào)、發(fā)件日期、文件標(biāo)題、內(nèi)容、抄送單位、發(fā)件人

      4.查詢條件是發(fā)文類型(收文、發(fā)文還是抄送)、文件標(biāo)題、內(nèi)容進(jìn)行模糊查詢。

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A2、運(yùn)動(dòng)員檔案管理

      運(yùn)動(dòng)員檔案管理系統(tǒng)是對(duì)運(yùn)動(dòng)員的基本信息及參加比賽的情況進(jìn)行管理維護(hù)。分為兩個(gè)模塊:運(yùn)動(dòng)員建檔、比賽記錄。

      5.運(yùn)動(dòng)員建檔增加、刪除和修改,其字段有:學(xué)生編號(hào)、姓名、出生日期、性別、民族、政治面貌、主修項(xiàng)目、聯(lián)系方式

      6.對(duì)運(yùn)動(dòng)員的檔案進(jìn)行模糊查詢,查詢條件有:學(xué)生編號(hào)、學(xué)生姓名、性別、主修項(xiàng)目

      7.對(duì)比賽記錄進(jìn)行增加、刪除、修改,其字段有:學(xué)生編號(hào)、姓名、時(shí)間、地點(diǎn)、比賽名稱、參加項(xiàng)目、成績(jī)、名次

      8.對(duì)比賽記錄進(jìn)行模糊查詢,查詢條件有:學(xué)生編號(hào)、學(xué)生姓名、比賽名稱、參加項(xiàng)目、成績(jī) 應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A3、信息發(fā)布系統(tǒng)

      信息發(fā)布系統(tǒng)是將最新信息、以最快的方式展示給用戶。提供信息的維護(hù)管理功能。信息主要字段:發(fā)布時(shí)間、標(biāo)題、內(nèi)容、有效期開始時(shí)間、結(jié)束時(shí)間、發(fā)布人、是否閱讀,完成對(duì)信息的發(fā)布、修改、刪除操作,對(duì)信息進(jìn)行模糊查詢,其查詢條件為標(biāo)題、內(nèi)容、發(fā)布人

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A4、通訊錄管理

      通訊錄管理系統(tǒng)是方便用戶管理自己的聯(lián)系人,查找相應(yīng)的聯(lián)系方式。根據(jù)類別的不同對(duì)聯(lián)系人進(jìn)行分類管理。聯(lián)系人信息有:姓名、性別、職務(wù)、辦公電話、手機(jī)、宅電、電子郵件、通訊地址,完成對(duì)聯(lián)系人的增加、刪除、修改操作,提供對(duì)通訊錄進(jìn)行模糊查詢,其條件為姓名、性別、職務(wù)、通訊地址字段

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A5、備忘錄管理

      備忘錄管理系統(tǒng)是記錄每天需要做的事情,起到一個(gè)提醒的作用。提供對(duì)這些信息的維護(hù)功能。備忘錄中的內(nèi)容主要有:日期、標(biāo)題、內(nèi)容這三個(gè)數(shù)據(jù)項(xiàng),完成對(duì)其的增加、刪除、修改操作,并可以按日期和標(biāo)題、內(nèi)容進(jìn)行模糊查詢

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A6、會(huì)議管理

      會(huì)議管理系統(tǒng)是記錄會(huì)議的基本信息,開完會(huì)后記錄會(huì)議的討論結(jié)果,進(jìn)行備案,供以后查詢使用。會(huì)議的基本信息:會(huì)議主題、會(huì)議類型(周會(huì)、報(bào)告會(huì)、考務(wù)會(huì)……)、會(huì)議狀態(tài)(準(zhǔn)備中、進(jìn)行中、已結(jié)束三種)、會(huì)議時(shí)間、會(huì)議地址、參與者、會(huì)議主要內(nèi)容,完成對(duì)其會(huì)議基本信息的增加、刪除、修改操作,并要記錄會(huì)議結(jié)果,會(huì)議記錄結(jié)果主要記錄的是會(huì)議討論結(jié)果、領(lǐng)導(dǎo)簽字兩個(gè)數(shù)據(jù)項(xiàng)。應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A7、日程管理

      日程管理要記錄每天的工作日程安排,主要內(nèi)容包括:記錄時(shí)間、名稱、內(nèi)容、地點(diǎn)、日程的開始

      和結(jié)束時(shí)間,完成對(duì)基本信息的增加、刪除、修改操作,并對(duì)日程的信息進(jìn)行查詢,查詢條件有:名稱、內(nèi)容

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A8、日志管理

      日志管理要記錄每一天完成工作的情況,記錄的信息有時(shí)間、上午工作記錄、下午工作記錄、記錄人,完成對(duì)這些信息的維護(hù),并對(duì)日期進(jìn)行查詢

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A9、用戶管理

      為了方便網(wǎng)站管理者對(duì)用戶進(jìn)行身份確認(rèn),或者是用戶購(gòu)買以后進(jìn)行配送等服務(wù),必須要有用戶管理系統(tǒng)。用戶管理系統(tǒng)應(yīng)該具有用戶注冊(cè)、用戶登錄、用戶修改和用戶注銷等功能。

      1. 用戶注冊(cè)(1)

      2. 用戶登錄(1)

      3. 用戶信息修改(1)

      4. 用戶注銷(1)

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A10、數(shù)據(jù)查詢

      網(wǎng)上購(gòu)物的一個(gè)優(yōu)勢(shì)是可以在商品中進(jìn)行查詢。

      1. 生成查詢記錄集(1)

      2. 分頁(yè)顯示功能(1)

      3. 查看商品詳細(xì)信息(1)

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A11、購(gòu)物車

      1.添加到購(gòu)物車(1)

      2.查看購(gòu)物車(1)

      3.購(gòu)物車操作(1)

      4.結(jié)帳(1)

      應(yīng)用工具:jsp+struts+jdbc

      題目等級(jí):A

      12.新聞管理系統(tǒng)

      題目:當(dāng)今社會(huì)是一個(gè)信息社會(huì),人們通過信息了解社會(huì)情況,進(jìn)行社會(huì)活動(dòng),而新聞作為企事業(yè)單位宣

      傳自己,發(fā)布信息的主要形式,而在網(wǎng)絡(luò)新聞的宣傳是一個(gè)新興事務(wù),并且發(fā)展很快,已經(jīng)成為一個(gè)重要信息發(fā)布媒體。所以現(xiàn)要求你設(shè)計(jì)一個(gè)用于新聞管理的信息系統(tǒng),實(shí)現(xiàn)新聞的編輯與發(fā)布。

      功能要求:本系統(tǒng)要求可以完成新聞在線發(fā)布,在線編輯,新聞分類,圖片新管理等功能,技術(shù)上要求

      使用JSP技術(shù)。

      題目等級(jí):B

      13.在線考試系統(tǒng)

      題目:考試作為學(xué)員學(xué)習(xí)效果的檢驗(yàn)的主要方式一直被采用,而且考試形式也有許多方式,如筆試,面

      試等,在線測(cè)試作為一種新的考試形式,得到越來越快的發(fā)展。所以現(xiàn)要求你設(shè)計(jì)一個(gè)在線考試系統(tǒng),實(shí)現(xiàn)在線測(cè)試。

      功能能要求:實(shí)現(xiàn)在線測(cè)度,在線評(píng)測(cè),隨機(jī)出題,試題編輯等功能,技術(shù)上采用JSP+JavaBean實(shí)現(xiàn)。題目等級(jí):A

      14.網(wǎng)上書店系統(tǒng)

      題目:圖書是人們了解知識(shí),掌握知識(shí)的主要手段,傳統(tǒng)的書店都店面形式,人們需要去書店才能夠購(gòu)

      買,花費(fèi)大量的時(shí)間也不一定得到一本滿意的書籍。而網(wǎng)上書店就是利用網(wǎng)絡(luò)為人們提供一個(gè)足不出戶就可以買到一本理想的書籍的方式。所以要求你設(shè)計(jì)一個(gè)網(wǎng)絡(luò)書店系統(tǒng),實(shí)現(xiàn)書籍的在線銷售,在線閱讀。

      功能要求:實(shí)現(xiàn)圖書在線閱覽,在線選購(gòu),新書推薦等功能,技術(shù)上要求采用JSP +JavaBean實(shí)現(xiàn)。題目等級(jí):A

      15.學(xué)生學(xué)籍系統(tǒng)

      題目:學(xué)生學(xué)籍管理是一個(gè)學(xué)校管理的重要組成部分,學(xué)生學(xué)籍管理也是最麻煩的一項(xiàng)管理,所以實(shí)現(xiàn)

      學(xué)生學(xué)籍管理的信息化是一種簡(jiǎn)化管理的主要途徑?,F(xiàn)要求你設(shè)計(jì)一個(gè)實(shí)現(xiàn)學(xué)生學(xué)籍管理的系統(tǒng),實(shí)現(xiàn)學(xué)生學(xué)籍管理的信息化。

      功能要求:學(xué)生學(xué)籍注冊(cè),查詢,更新,學(xué)生獎(jiǎng)懲,學(xué)籍變動(dòng)等功能。技術(shù)上要求采用JSP技術(shù)實(shí)現(xiàn)。題目等級(jí):B

      16.留言本

      題目:留言本是網(wǎng)站中用于與管理員進(jìn)行信息交流的主要方式,是網(wǎng)站中的一個(gè)重要功能之一,現(xiàn)要求

      你設(shè)計(jì)一個(gè)留言本,實(shí)現(xiàn)在線留言。

      功能要求:留言發(fā)布,留言回復(fù),留言置頂,留言驗(yàn)證等功能,技術(shù)采用JSP實(shí)現(xiàn)。

      題目等級(jí):C

      17.在線投票問卷管理系統(tǒng)

      題目:在線調(diào)查是調(diào)查了解對(duì)某件事情人們反映的主要方式,是目前比要流行的一種調(diào)查方式。現(xiàn)要求

      實(shí)現(xiàn)一個(gè)在線投票調(diào)查系統(tǒng),并可以進(jìn)行結(jié)果統(tǒng)計(jì),結(jié)果評(píng)測(cè)等功能。

      功能要求:在線投票,在線答卷,在線統(tǒng)計(jì),在線評(píng)測(cè)等功能,技術(shù)上采用JSP實(shí)現(xiàn)。

      題目等級(jí):C

      18.員工檔案管理系統(tǒng)

      題目:?jiǎn)T工檔案是一個(gè)企業(yè)人才建設(shè)管理的重要資源,好的員工檔案管理,對(duì)提高員工工作積極性,提高企業(yè)效益的重要方式。所以要求設(shè)計(jì)一個(gè)員工檔案管理系統(tǒng),實(shí)現(xiàn)員工檔案管理的信息化管理。

      功能要求:?jiǎn)T工檔案注冊(cè),員工考核,員工調(diào)動(dòng)等功能,技術(shù)上采用JSP+JavaBean實(shí)現(xiàn)。

      題目等級(jí):A

      19.文本編輯器

      題目:參照Windows記事本程序設(shè)計(jì)一個(gè)文本編程器,可以進(jìn)行文本的格式編輯。

      功能要求:要求有菜單,工具欄,文本編輯功能所需要的功能,技術(shù)上采用Java圖形窗口技術(shù)實(shí)現(xiàn)。題目等級(jí):C

      20.計(jì)算器

      題目:參照Windows計(jì)算器程序設(shè)計(jì)一個(gè)計(jì)算器,可以實(shí)現(xiàn)數(shù)學(xué)計(jì)算。

      功能要求:要求功能上要與Windows計(jì)算器功能類似。

      題目等級(jí):C

      21.HANNOI-塔

      題目:運(yùn)用多線程與圖形接口技術(shù)設(shè)計(jì)一個(gè)HANNOI-塔演示程序,要求增加簡(jiǎn)易圖形界面。功能要求:能夠至少演示5級(jí)HANNOI-塔。

      題目等級(jí):B

      22.挖雷游戲

      題目:運(yùn)用多線程程序與圖形接口技術(shù)設(shè)計(jì)一個(gè)挖雷游戲程序,要求有簡(jiǎn)易的圖形界面。

      功能要求:功能上與Windows掃雷游戲類似。

      題目等級(jí):A

      23.動(dòng)態(tài)時(shí)鐘

      題目:運(yùn)用Applet和多線程技術(shù)設(shè)計(jì)鐘表程序,以實(shí)現(xiàn)當(dāng)前時(shí)鐘的顯示。

      功能要求:要求有表盤,可以調(diào)整時(shí)間。

      題目等級(jí):B

      24.音樂播放器

      題目:運(yùn)用Applet技術(shù)設(shè)計(jì)一個(gè)可以播放音樂的播放器。

      功能要求:可以播放音樂,可以添加樂曲等功能。

      題目等級(jí):C

      25.實(shí)驗(yàn)室網(wǎng)上簽到系統(tǒng)

      題目:要求實(shí)現(xiàn)一個(gè)實(shí)驗(yàn)在線簽到系統(tǒng),學(xué)生可以在上實(shí)驗(yàn)時(shí)完成簽到。

      功能要求:課程設(shè)置,新建簽到,學(xué)生簽到列表,學(xué)生在線簽到等功能。技術(shù)上采用JSP+JavaBean技

      術(shù)實(shí)現(xiàn)。

      題目等級(jí):B

      26.用戶管理系統(tǒng)

      題目:要求實(shí)現(xiàn)用戶管理系統(tǒng),可以實(shí)現(xiàn)用戶注冊(cè),用戶權(quán)限管理等功能。

      功能要求:用戶注冊(cè),用戶極限分配,用戶登錄等功能。技術(shù)采用JSP技術(shù)實(shí)現(xiàn)。、題目等級(jí):C

      27.圖書館管理系統(tǒng)

      題目:要求實(shí)現(xiàn)圖書館的在線管理,學(xué)生可以在線借書,在線閱覽等功能。

      功能要求:在線圖書管理。在線閱讀,在線借書,還書等功能。技術(shù)上采用JSP+JavaBean實(shí)現(xiàn)。題目等級(jí):B

      28.求職招聘系統(tǒng)

      題目:網(wǎng)上求職是當(dāng)今人才流動(dòng),人才引進(jìn)的重要途徑,但對(duì)于成百萬的簡(jiǎn)歷的管理,職位的發(fā)布的管理如果采用人工的方式會(huì)花費(fèi)大量的人力、物力,但如果實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)化 管理就顯得容易一些,所以現(xiàn)要求你設(shè)計(jì)一個(gè)求職招聘管理系統(tǒng),實(shí)現(xiàn)人才交流的信息化處理。

      功能要求:職位發(fā)布,在線投簡(jiǎn),在線應(yīng)聘等功能。技術(shù)上采用JSP+JavaBean技術(shù)實(shí)現(xiàn)。題目等級(jí):B

      29.倉(cāng)庫(kù)管理系統(tǒng)

      題目:倉(cāng)庫(kù)管理是一個(gè)非常煩瑣,但是很重要的工作。如果能夠?qū)崿F(xiàn)倉(cāng)庫(kù)管理的計(jì)算機(jī)處理,對(duì)于提

      高工作效率,降低工作成本,能夠起到非常重要的作用,所以現(xiàn)要求實(shí)現(xiàn)一個(gè)倉(cāng)庫(kù)管理系統(tǒng),實(shí)現(xiàn)倉(cāng)庫(kù)的信息化管理。

      功能要求:實(shí)現(xiàn)貨物的出庫(kù),入庫(kù),庫(kù)存統(tǒng)計(jì),庫(kù)存預(yù)警等功能。技術(shù)上采用JSP+JavaBean技術(shù)實(shí)現(xiàn)。題目等級(jí):B

      30企業(yè)網(wǎng)站管理系統(tǒng)

      題目:網(wǎng)站對(duì)企業(yè)宣傳工作的開展提供一個(gè)非常的好的效果,產(chǎn)生很好的效益,這就說明網(wǎng)站已經(jīng)成為企業(yè)宣傳自己的重要手段,網(wǎng)站管理的好壞直接影響這個(gè)網(wǎng)站的應(yīng)用,所以現(xiàn)要求為某企業(yè)網(wǎng)站設(shè)計(jì)一個(gè)管理系統(tǒng),實(shí)現(xiàn)網(wǎng)站的后臺(tái)管理。

      功能要求:產(chǎn)品發(fā)布,用戶管理,信息發(fā)布等功能。技術(shù)上采用JSP+JavaBean技術(shù)實(shí)現(xiàn)。題目等級(jí):A

      31.流量統(tǒng)計(jì)系統(tǒng)

      題目:網(wǎng)絡(luò)流量是反映一個(gè)網(wǎng)站受關(guān)注度情況的重要表現(xiàn),是網(wǎng)站調(diào)整版面信息的參考,訪問流量高的網(wǎng)站證明其效益非常好,是一個(gè)非常理想的網(wǎng)站,但流量低的網(wǎng)站就需要進(jìn)行信息的更新和版面的修改,以提高網(wǎng)站的訪問量,這樣網(wǎng)站流量的時(shí)時(shí)統(tǒng)計(jì)能夠給網(wǎng)站管理員提供一個(gè)網(wǎng)站運(yùn)行情況信息參考,為其更好的管理網(wǎng)站提供幫助。現(xiàn)要求你設(shè)計(jì)一個(gè)網(wǎng)站訪問流量的統(tǒng)計(jì)系統(tǒng),時(shí)時(shí)統(tǒng)計(jì)網(wǎng)站訪問流量。

      功能要求:顯示在線人數(shù),當(dāng)前訪問者IP,歷史訪問人數(shù),最高流量時(shí)間等功能。技術(shù)上采用JSP技

      術(shù)實(shí)現(xiàn)。

      題目等級(jí):C

      其它可選題目

      以上題目的等級(jí)全都為C,所選工具應(yīng)為jsp+jdbc,都要完全相應(yīng)的增、刪、改、查等功能

      (1)酒店管理信息系統(tǒng)

      (2)客房管理信息系統(tǒng)

      (3)藥品管理信息系統(tǒng)

      (4)學(xué)籍管理信息系統(tǒng)

      (5)成績(jī)管理信息系統(tǒng)

      (6)宿舍管理信息系統(tǒng)

      (7)圖書管理信息系統(tǒng)

      (8)財(cái)務(wù)處理信息系統(tǒng)

      (9)固定資產(chǎn)核算信息系統(tǒng)

      (10)工資管理信息系統(tǒng)

      (11)材料管理信息系統(tǒng)

      (12)成本管理信息系統(tǒng)

      (13)房地產(chǎn)產(chǎn)權(quán)產(chǎn)籍管理信息系統(tǒng)的開發(fā)

      (14)住宅小區(qū)物業(yè)管理信息系統(tǒng)的開發(fā)

      (15)建設(shè)工程報(bào)價(jià)管理信息系統(tǒng)的開發(fā)

      (16)建設(shè)工程預(yù)算系統(tǒng)的開發(fā)

      (17)項(xiàng)目材料管理信息系統(tǒng)的開發(fā)

      (18)工程材料采購(gòu)管理信息系統(tǒng)的開發(fā)

      (19)工程成本管理信息系統(tǒng)的開發(fā)

      (20)機(jī)械設(shè)備租賃管理系統(tǒng)的開發(fā)

      (21)工程圖檔管理信息系統(tǒng)的開發(fā)

      (22)企業(yè)人力資源管理信息系統(tǒng)的開發(fā)

      (23)企業(yè)職工培訓(xùn)管理信息系統(tǒng)的開發(fā)

      (24)企業(yè)職工醫(yī)療保險(xiǎn)信息系統(tǒng)的開發(fā)

      (25)商品銷售管理信息系統(tǒng)的開發(fā)

      第五篇:Java課程設(shè)計(jì)報(bào)告

      課 程 設(shè) 計(jì)

      課程名稱 Java語(yǔ)言課程設(shè)計(jì) 題目名稱 人事管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 學(xué)生學(xué)院 應(yīng)用數(shù)學(xué)學(xué)院 專業(yè)班級(jí) 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 劉科峰

      2014 年 10 月 29

      日 一.設(shè)計(jì)內(nèi)容

      自學(xué)Swing圖形界面設(shè)計(jì)和數(shù)據(jù)庫(kù)程序設(shè)計(jì)。開發(fā)用于某單位的人事管理系統(tǒng)。該系統(tǒng)要求實(shí)現(xiàn)以下功能:

      1.員工信息管理包括:?jiǎn)T工信息一覽表、新員工的建立、修改 2.薪資福利管理:考勤與薪資的連動(dòng)計(jì)算、薪資與福利的設(shè)置

      3.考勤假期管理:考勤項(xiàng)目錄入, 實(shí)現(xiàn)考勤信息的查詢、統(tǒng)計(jì)、匯總 4.人事報(bào)表管理:按照員工性別,數(shù)目,薪酬自動(dòng)生成相關(guān)報(bào)表, 可自定義統(tǒng)計(jì)分析條件并可對(duì)歷史報(bào)表進(jìn)行管理。

      設(shè)計(jì)亮點(diǎn)

      1.null布局方式

      Swing圖形界面設(shè)計(jì)中有很多布局方式,通過本次學(xué)習(xí)了解到了FlowLayout,BorderLayout,GridLayout以及null布局,就這四種布局方式而言,null布局的優(yōu)點(diǎn)在于可以將組建的位置精準(zhǔn)到坐標(biāo)值,可以把組件放到任意想放置的位置,另外可以通過null去設(shè)置組件的大小,相較于其他布局方式來說是一個(gè)很大的優(yōu)勢(shì)。但同時(shí)它的缺點(diǎn)在于不能根據(jù)Frame的大小變化而改變位置。

      2.組件部分屬性的設(shè)計(jì)

      Swing中有很多方法是用來實(shí)現(xiàn)組件屬性設(shè)置的,比如button.setVisible(false);按鈕通過調(diào)用這個(gè)方法實(shí)現(xiàn)不可見,這是我此次課程設(shè)計(jì)中的一個(gè)亮點(diǎn),因?yàn)榻M件是沒有設(shè)置大小的方法的,只有依靠于相應(yīng)的布局方式才能改變它的大小,通過設(shè)置多幾個(gè)按鈕設(shè)為不可見,將所要可見按鈕實(shí)現(xiàn)大小以及位置的控制是一種很好的方法。

      二、設(shè)計(jì)方案

      1主界面(只列出界面設(shè)計(jì)方面的代碼)

      JPanel panel=new JPanel();JTable table=null;JButton ibtn=new JButton(“員工信息”);JButton cbtn=new JButton(“考勤管理”);JButton mbtn=new JButton(“薪資管理”);JButton tbtn=new JButton(“人事報(bào)表”);ImageIcon rtou = new ImageIcon(“rentou.jpg”);

      JLabel imgLabel=new JLabel(rtou);

      //上面代碼定義了一個(gè)面板與四個(gè)標(biāo)簽,并引入了一個(gè)圖片

      panel.setLayout(new FlowLayout());//設(shè)置面板為流布局

      panel.add(ibtn);panel.add(cbtn);panel.add(mbtn);panel.add(tbtn);panel.setBackground(Color.GRAY);

      //將按鈕加到面板中,設(shè)置面板為灰色

      this.add(imgLabel,BorderLayout.CENTER);this.add(panel,BorderLayout.SOUTH);this.setBounds(300, 180, 600, 350);this.setVisible(true);this.getContentPane().setBackground(Color.GRAY);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/*圖片標(biāo)簽以邊框布局放置在中間,將面板也以邊框布局放置在下面,可見,灰色,點(diǎn)擊關(guān)閉程序*/

      (2)查詢員工界面(只列出界面設(shè)計(jì)方面的代碼)

      Label idlabel = new JLabel(“ID”);JLabel namelabel = new JLabel(“姓名”);JLabel bumenlabel = new JLabel(“部門”);JLabel zhiweilabel = new JLabel(“職位”);

      JTextField idfiled = new JTextField(8);JTextField namefield = new JTextField(8);JComboBox bumenbox =new JComboBox();JComboBox zhiweubox = new JComboBox();

      JButton btn=new JButton(“查詢”);JButton ibtn=new JButton(“添加”)

      JPanel spanel=new JPanel();JPanel vpanel=new JPanel();

      /*定義和各個(gè)組件,4個(gè)標(biāo)簽,兩個(gè)文本框,兩個(gè)復(fù)選框,兩個(gè)按鈕,兩個(gè)面板容器*/ spanel.setLayout(new FlowLayout());

      vpanel.setLayout(new FlowLayout(FlowLayout.CENTER,45,25));

      bumenbox.addItem(“");

      bumenbox.addItem(”管理部“);

      bumenbox.addItem(”生產(chǎn)部“);

      bumenbox.addItem(”業(yè)務(wù)部“);

      zhiweubox.addItem(”“);

      zhiweubox.addItem(”部長(zhǎng)“);

      zhiweubox.addItem(”副部長(zhǎng)“);

      zhiweubox.addItem(”普工“);

      spanel.add(idlabel);

      spanel.add(idfiled);

      spanel.add(namelabel);

      spanel.add(namefield);

      spanel.add(bumenlabel);

      spanel.add(bumenbox);

      spanel.add(zhiweilabel);

      spanel.add(zhiweubox);

      spanel.add(btn);

      vpanel.add(ibtn);

      spanel.setBackground(Color.GRAY);

      vpanel.setBackground(Color.GRAY);

      //將各個(gè)組件放進(jìn)對(duì)應(yīng)面板,設(shè)置相關(guān)屬性

      this.add(spanel,BorderLayout.NORTH);

      this.add(vpanel,BorderLayout.SOUTH);

      this.setBounds(300, 180, 600, 350);

      this.setVisible(true);

      this.getContentPane().setBackground(Color.GRAY);

      //將面板以邊框布局放入框架中,設(shè)置屬性(3)增加員工信息界面

      JPanel panel=new JPanel();

      JLabel timeLabel=new JLabel(”時(shí)間“);JLabel allnumLabel=new JLabel(”員工總數(shù)“);

      JLabel staffMoLabel=new JLabel(”考勤“);JLabel entryLabel=new JLabel(”全勤“);

      JLabel quitLabel=new JLabel(”缺勤“);JLabel mwLabel=new JLabel(”性別比例“);

      JLabel manLabel=new JLabel(”男“);

      JLabel womanLabel=new JLabel(”女“);JLabel proportionLabel=new JLabel(”男女比例“);JLabel distributionLabel=new JLabel(”人員部門分布“);JLabel mdpLabel=new JLabel(”管理部“);

      JLabel pdpLabel=new JLabel(”生產(chǎn)部“);JLabel bdpLabel=new JLabel(”業(yè)務(wù)部“);JLabel xmLabel=new JLabel(”項(xiàng)目“);JLabel xzLabel=new JLabel(”細(xì)則“);JLabel stLabel=new JLabel(”數(shù)據(jù)統(tǒng)計(jì)“);

      JTextField timeFiled = new JTextField(8);

      JTextField allnumFiled = new JTextField(8);JTextField entryFiled = new JTextField(8);JTextField quitFiled = new JTextField(8);JTextField manFiled = new JTextField(8);JTextField womanFiled = new JTextField(8);JTextField proportionFiled = new JTextField(8);JTextField mdpFiled = new JTextField(8);JTextField pdpFiled = new JTextField(8);JTextField bdpFiled = new JTextField(8);// 定義所需組件

      public Selectrenshi(String tablename){

      super(”人事管理“);

      panel.setLayout(null);

      panel.setBackground(Color.GRAY);

      panel.add(xmLabel);

      panel.add(xzLabel);

      panel.add(stLabel);

      panel.add(timeLabel);

      panel.add(timeFiled);

      panel.add(allnumLabel);

      panel.add(allnumFiled);

      panel.add(staffMoLabel);

      panel.add(entryLabel);

      panel.add(entryFiled);

      panel.add(quitLabel);

      panel.add(quitFiled);

      panel.add(mwLabel);

      panel.add(manLabel);

      panel.add(manFiled);

      panel.add(womanLabel);

      panel.add(womanFiled);

      panel.add(proportionLabel);

      panel.add(proportionFiled);

      panel.add(distributionLabel);

      panel.add(mdpLabel);

      panel.add(mdpFiled);

      panel.add(pdpLabel);

      panel.add(pdpFiled);

      panel.add(bdpLabel);

      panel.add(bdpFiled);

      //將組件加到相應(yīng)面板中

      xmLabel.setBounds(120,20,100,30);

      xzLabel.setBounds(240,20,100,30);

      stLabel.setBounds(360,20,100,30);

      timeLabel.setBounds(120,50,100,30);

      timeFiled.setBounds(360,50,100,30);

      allnumLabel.setBounds(120,100,100,30);

      allnumFiled.setBounds(360,100,100,30);

      staffMoLabel.setBounds(120,150,100,30);

      entryLabel.setBounds(240,150,100,30);

      entryFiled.setBounds(360,150,100,30);

      quitLabel.setBounds(240,200,100,30);

      quitFiled.setBounds(360,200,100,30);

      mwLabel.setBounds(120,250,100,30);

      manLabel.setBounds(240,250,100,30);

      manFiled.setBounds(360,250,100,30);

      womanLabel.setBounds(240,300,100,30);

      womanFiled.setBounds(360,300,100,30);

      proportionLabel.setBounds(240,350,100,30);

      proportionFiled.setBounds(360,350,100,30);

      distributionLabel.setBounds(120,400,100,30);

      mdpLabel.setBounds(240,400,100,30);

      mdpFiled.setBounds(360,400,100,30);

      pdpLabel.setBounds(240,450,100,30);

      pdpFiled.setBounds(360,450,100,30);

      bdpLabel.setBounds(240,500,100,30);

      bdpFiled.setBounds(360,500,100,30);

      //采用null布局,設(shè)置組建坐標(biāo)值

      this.add(panel,BorderLayout.CENTER);

      this.setBounds(300, 100, 600, 600);

      this.setVisible(true);

      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      this.getContentPane().setBackground(Color.GRAY);

      //將面板放入框架,設(shè)置相應(yīng)屬性(4)員工考勤界面

      JLabel idlabel = new JLabel(”ID“);JComboBox idbox =new JComboBox();CheckTable model = null;

      JButton wbtn=new JButton(”修改“);

      JButton cbtn=new JButton(”查詢“);JButton mbtn=new JButton(”創(chuàng)建薪資表“);JButton rbtn=new JButton(”創(chuàng)建人事表“);

      JScrollPane scrollpane = null;JPanel spanel=new JPanel();JPanel vpanel=new JPanel();JTable table=null;spanel.add(idbox);panel.add(wbtn);spanel.add(cbtn);vpanel.add(mbtn);vpanel.add(rbtn);spanel.setBackground(Color.GRAY);vpanel.setBackground(Color.GRAY);this.add(spanel,BorderLayout.NORTH);this.add(vpanel,BorderLayout.SOUTH);this.setBounds(300, 180, 600, 350);this.setVisible(true);this.getContentPane().setBackground(Color.GRAY);

      (5)選擇考勤表界面

      JLabel checklabel = new JLabel(”選擇考勤表“);JLabel newlabel = new JLabel(”創(chuàng)建考勤表“);JComboBox timebox =new JComboBox();JTextField newfield = new JTextField();JButton btn=new JButton(”確認(rèn)“);JButton nbtn=new JButton(”創(chuàng)建");JPanel spanel=new JPanel();spanel.add(checklabel);

      spanel.add(timebox);

      spanel.add(btn);

      spanel.add(newlabel);

      spanel.add(newfield);

      spanel.add(nbtn);

      checklabel.setBounds(30,90,100,30);

      timebox.setBounds(180,90,100,30);

      btn.setBounds(360,90,100,30);

      newlabel.setBounds(30,200,100,30);

      newfield.setBounds(180,200,100,30);

      nbtn.setBounds(360,200,100,30);

      this.add(spanel);

      this.setBounds(300, 180, 600, 350);

      this.setVisible(true);

      三、結(jié)果和數(shù)據(jù)處理

      四、結(jié)論

      1.Swing圖形界面

      圖形用戶界面(GUI)是程序不可或缺的一部分,它便于用戶和程序的交互。在Swing界面中是以Frame為框架,采用合理的布局方式(FlowLayout,BorderLayout,GridLayout,null),將Panel加入框架之中,而實(shí)現(xiàn)界面的各個(gè)組件將調(diào)用各種方法設(shè)置自身屬性實(shí)行可視化界面以及加入到面板之中。再通過事件監(jiān)聽器實(shí)現(xiàn)事件的監(jiān)聽預(yù)處理機(jī)制。

      2.數(shù)據(jù)庫(kù)

      在這次課程設(shè)計(jì)中哦我主要負(fù)責(zé)Swing圖像界面,對(duì)于數(shù)據(jù)庫(kù)只做了最簡(jiǎn)單的了解。程序中采用了最流行的關(guān)系型數(shù)據(jù)庫(kù)mysql,雪化了mysql的建立,刪除,與修改以及使用sql語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行一些簡(jiǎn)單的操作,將按鈕等設(shè)置的監(jiān)聽事件與數(shù)據(jù)庫(kù)相連接。

      五、問題與討論

      1.組件的方法調(diào)用

      在這次課程設(shè)計(jì)中,用到了很多的組件,例如Button,Jlabel,TextField,ComBox,等。Swing圖形界面也確實(shí)提供了很多方法去設(shè)置相關(guān)組件的屬性,例如label.setVisible(false);設(shè)置標(biāo)簽不可見等很多方法,只要查看API文檔幾乎就能實(shí)現(xiàn)很多功能,但是對(duì)于按鈕等最常見的組件來說設(shè)置大小如果不依靠相關(guān)布局方式很難設(shè)置,我在程序中之所以運(yùn)用了很多的bull布局方式就是為了實(shí)現(xiàn)組件大小的設(shè)置,如果說能有一個(gè)方法直接設(shè)置組件大小而不受其他組件或容器影響就能使代碼很簡(jiǎn)潔了。2.相對(duì)布局

      在編寫圖像界面的程序的時(shí)候,我用了很多的布局方式,有FlowLayout,BorderLayout,GrirLayout,null等,其中null布局用的最多。null布局的優(yōu)點(diǎn)在于可以將組建的位置精準(zhǔn)到坐標(biāo)值,可以把組件放到任意想放置的位置,另外可以通過null去設(shè)置組件的大小,相較于其他布局方式來說是一個(gè)很大的優(yōu)勢(shì)。但同時(shí)它的缺點(diǎn)在于不能根據(jù)Frame的大小變化而改變位置。其他三種布局方式雖然實(shí)現(xiàn)了歲Frame大小變動(dòng)而改變組件大小及位置但是不容易控制,如果null布局能實(shí)現(xiàn)相對(duì)布局就是很好的一種布局方式了。

      下載Java課程設(shè)計(jì)心得體會(huì)word格式文檔
      下載Java課程設(shè)計(jì)心得體會(huì).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        貪吃蛇java課程設(shè)計(jì)

        import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Snake extends JFrame { private JPanel contentPane; //窗體內(nèi)容網(wǎng)格 private JButton......

        java課程設(shè)計(jì)總結(jié)

        java課程設(shè)計(jì)總結(jié) java語(yǔ)言程序設(shè)計(jì)是高校計(jì)算機(jī)相關(guān)專業(yè)的一門重要課程,小編收集了java課程設(shè)計(jì)總結(jié),歡迎閱讀。 java課程設(shè)計(jì)總結(jié)【一】在java課程設(shè)計(jì)中,要認(rèn)清楚到底這在......

        java課程設(shè)計(jì)報(bào)告[本站推薦]

        《Java語(yǔ)言程序設(shè)計(jì)》 題 目:指導(dǎo)老師:姓 名:專 業(yè):班 級(jí):日 期:課程設(shè)計(jì)報(bào)告 目 錄 一、系統(tǒng)總體設(shè)計(jì) ....................................... 1 (一)設(shè)計(jì)目標(biāo)及完成功能..............

        《java》課程設(shè)計(jì)任務(wù)書(2015)

        課 程 設(shè) 計(jì) 任 務(wù) 書 信息工程與自動(dòng)化 學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù) 專業(yè) 2015 年級(jí) 學(xué)生姓名: 課程設(shè)計(jì)主要內(nèi)容: 課程設(shè)計(jì)題目: 中級(jí)程序設(shè)計(jì)課程設(shè)計(jì)(java可視化編程) 一、設(shè)......

        Java課程設(shè)計(jì)題目

        Java課程設(shè)計(jì)題目 一、Java語(yǔ)言課程設(shè)計(jì)目的和要求 1.目的: 1)復(fù)習(xí)、鞏固Java語(yǔ)言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)Java語(yǔ)言的理解和掌握; 2)課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)......

        Java課程設(shè)計(jì)報(bào)告

        《Java課程實(shí)習(xí)》報(bào)告 題目 學(xué)號(hào) 學(xué)生姓名 音樂播放器 201011621335 201011621329 200811621320 朱劍峰 薛文博 劉彬 聯(lián)系方式 *** *** *** 所在......

        JAVA課程設(shè)計(jì)報(bào)告_完整版

        《JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)》 課 程 設(shè) 計(jì) 報(bào) 告 (2011-2012學(xué)年第2學(xué)期)系 別: 專業(yè)名稱: 廈門理工學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 10級(jí)網(wǎng)絡(luò)工程1班 課程設(shè)計(jì)科目: 《JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)......

        java課程設(shè)計(jì)報(bào)告—計(jì)算器

        1 --計(jì)算器 Java實(shí)習(xí)報(bào)告目錄一、課程設(shè)計(jì)目的 ................................................................................................................. 2......