




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫(kù)課程實(shí)訓(xùn)報(bào)告 專心-專注-專業(yè)目 錄0高校設(shè)備管理系統(tǒng)1 課題內(nèi)容和要求 1.1課題描述設(shè)備管理是企、事業(yè)單位中的一項(xiàng)主要管理工作,特別是對(duì)于企、事業(yè)單位的決策者和管理者來(lái)說(shuō),設(shè)備管理工作都是至關(guān)重要的,作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)設(shè)備信息進(jìn)行管理,有著手工管理所無(wú)法比擬的優(yōu)點(diǎn),因此要求系統(tǒng)能夠:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等,以此來(lái)提高設(shè)備管理的工作效率,達(dá)到預(yù)期的目的,從而為用戶提供充足的信息和快捷的查詢手段以管理相關(guān)的設(shè)備信息。1.2 課題要求2 需求分析2.1 功能需求分析 本設(shè)備管理系統(tǒng)應(yīng)具備對(duì)設(shè)備相關(guān)信息進(jìn)
2、行錄入,刪除,修改,查詢,輸出,折舊等基本操作,并將其數(shù)據(jù)傳遞到數(shù)據(jù)庫(kù)中存儲(chǔ)。使用國(guó)家標(biāo)準(zhǔn)設(shè)備分類編碼方法,能夠?qū)崿F(xiàn)對(duì)設(shè)備代碼的維護(hù)。能夠使用戶方便的進(jìn)行檢索查詢相關(guān)設(shè)備信息。能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的備份和恢復(fù)。具體功能如下圖所示:用 戶 登 錄折舊更新輸出備份查詢添加修改恢復(fù)分類檢索全表查詢刪除圖2.11. 設(shè)備的添加功能:添加新的設(shè)備,包括:設(shè)備編號(hào)、設(shè)備名稱、設(shè)備類別、設(shè)備單價(jià)等。2、設(shè)備的刪除功能:刪除設(shè)備的信息,包括:設(shè)備編號(hào)、設(shè)備名稱、設(shè)備類別、使用單位等。3、設(shè)備的修改功能:修改設(shè)備的信息,包括:修改設(shè)備編號(hào)、設(shè)備名稱、設(shè)備類別、設(shè)備單價(jià)、折舊率等。4、設(shè)備的查詢功能:查詢?cè)O(shè)備的信息,包
3、括:設(shè)備的編號(hào)、名稱、類別、使用單位、單價(jià)、折舊率等信息。5、設(shè)備的折舊功能:對(duì)現(xiàn)有設(shè)備進(jìn)行折舊計(jì)算輸出設(shè)備的現(xiàn)有價(jià)值。6、數(shù)據(jù)備份功能:對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行備份,用來(lái)還原數(shù)據(jù)庫(kù)。7、數(shù)據(jù)恢復(fù)功能:對(duì)數(shù)據(jù)庫(kù)進(jìn)行恢復(fù),是數(shù)據(jù)庫(kù)恢復(fù)到備份前的狀態(tài)。2.2 數(shù)據(jù)需求分析2.2.1數(shù)據(jù)流圖P02國(guó)家標(biāo)準(zhǔn)設(shè)備分類表P03設(shè)備使用單位代碼表D05操作成功信息D06操作P01設(shè)備使用明細(xì)表A02更新、維護(hù)、查詢、折舊、備份和還原數(shù)據(jù)D01驗(yàn)證錯(cuò)誤信息用戶登錄D02登錄信息A03身份驗(yàn)證A01輸 出D03操作信息D04反饋信息圖2.2 數(shù)據(jù)流圖2.2.2數(shù)據(jù)字典(1)數(shù)據(jù)流的描述數(shù)據(jù)流編號(hào): D01數(shù)據(jù)流名稱
4、: 驗(yàn)證信息數(shù)據(jù)流來(lái)源: 用戶輸入與數(shù)據(jù)庫(kù)數(shù)據(jù)流去向: 系統(tǒng)判斷數(shù)據(jù)流組成: 用戶名+密碼等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號(hào): D02數(shù)據(jù)流名稱: 登錄信息數(shù)據(jù)流來(lái)源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)判斷數(shù)據(jù)流組成: 用戶名+密碼等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號(hào): D03數(shù)據(jù)流名稱: 操作信息數(shù)據(jù)流來(lái)源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)選擇數(shù)據(jù)流組成: 各種功能等數(shù)據(jù)流量:2000/天高峰流量:50000/天數(shù)據(jù)流編號(hào): D04數(shù)據(jù)流名稱: 反饋信息數(shù)據(jù)流來(lái)源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)選擇數(shù)據(jù)流組成: 輸出功能數(shù)據(jù)流量:2000/天高峰流量:50000
5、/天數(shù)據(jù)流編號(hào): D05數(shù)據(jù)流名稱: 操作成功信息數(shù)據(jù)流來(lái)源: 用戶輸入數(shù)據(jù)流去向: 數(shù)據(jù)庫(kù)數(shù)據(jù)流組成: 設(shè)備信息數(shù)據(jù)流量:5000天高峰流量:15000/天數(shù)據(jù)流編號(hào): D06數(shù)據(jù)流名稱: 操作6信息數(shù)據(jù)流來(lái)源: 用戶輸入數(shù)據(jù)流去向: 數(shù)據(jù)庫(kù)數(shù)據(jù)流組成: 國(guó)家標(biāo)準(zhǔn)設(shè)備信息數(shù)據(jù)流量:5000天高峰流量:15000/天 (2)處理邏輯描述處理邏輯編號(hào):A01處理邏輯名稱:輸出信息。輸出的數(shù)據(jù)流:設(shè)備明細(xì)帳信息處理頻率: 10次/天處理邏輯編號(hào):A02處理邏輯名稱:功能信息。輸出的數(shù)據(jù)流:設(shè)備標(biāo)準(zhǔn)信息處理頻率: 10次/天處理邏輯編號(hào):A03處理邏輯名稱:驗(yàn)證信息。輸人的數(shù)據(jù)流:用戶基本信息處理頻
6、率: 10次/天 (3)數(shù)據(jù)儲(chǔ)存描述數(shù)據(jù)存儲(chǔ)編號(hào):P01數(shù)據(jù)存儲(chǔ)名稱:設(shè)備使用明細(xì)信息 簡(jiǎn)述:設(shè)備的基本信息數(shù)據(jù)存儲(chǔ)組成:用戶名+密碼關(guān)鍵字:設(shè)備編號(hào),單位編號(hào),使用數(shù)量,折扣,單價(jià)相關(guān)聯(lián)的處理:A01數(shù)據(jù)存儲(chǔ)編號(hào):P02數(shù)據(jù)存儲(chǔ)名稱:國(guó)家標(biāo)準(zhǔn)設(shè)備分類信息 簡(jiǎn)述:國(guó)家標(biāo)準(zhǔn)設(shè)備基本信息數(shù)據(jù)存儲(chǔ)組成:用戶名+密碼關(guān)鍵字:設(shè)備編號(hào),設(shè)備類別,設(shè)備名稱,生產(chǎn)廠家,單價(jià)(元)相關(guān)聯(lián)的處理:A02數(shù)據(jù)存儲(chǔ)編號(hào):P03數(shù)據(jù)存儲(chǔ)名稱:設(shè)備使用單位信息 簡(jiǎn)述:?jiǎn)挝换拘畔?shù)據(jù)存儲(chǔ)組成:用戶名+密碼關(guān)鍵字:?jiǎn)挝痪幪?hào),單位名稱,單位電話,單位地址 相關(guān)聯(lián)的處理:A02(4)外部實(shí)體的描述外部實(shí)體名稱:用戶簡(jiǎn)述:使用
7、設(shè)備管理系統(tǒng)的人輸入的數(shù)據(jù)流:D02輸出的數(shù)據(jù)流:D01,D03外部實(shí)體名稱:設(shè)備簡(jiǎn)述:國(guó)家標(biāo)準(zhǔn)設(shè)備信息輸入的數(shù)據(jù)流: D06以下為具體數(shù)據(jù)庫(kù)中使用的表的詳細(xì)信息:設(shè)備使用明細(xì)表 列 名 數(shù)據(jù)類型 長(zhǎng)度 是否為空設(shè)備編號(hào) char 20 否單位編號(hào) char 20 否使用數(shù)量 int 4 是折扣 float 8 是 單價(jià) float 8 是設(shè)備名稱 char 20 是設(shè)備使用單位代碼表列 名數(shù)據(jù)類型長(zhǎng)度是否為空單位編號(hào) char20 否單位名稱 char 20 是單位電話 char 20 是單位地址 char 20 是國(guó)家標(biāo)準(zhǔn)設(shè)備分類表列 名數(shù)據(jù)類型長(zhǎng)度是否為空設(shè)備編號(hào) char 20 否設(shè)備
8、類別 char 20 是設(shè)備名稱 char 20 是生產(chǎn)廠家 char 20 是單價(jià)(元) float 8 是3 系統(tǒng)設(shè)計(jì)3.1 功能模塊設(shè)計(jì)1、登陸模塊本模塊實(shí)現(xiàn)了管理員登陸系統(tǒng)的功能,是系統(tǒng)的第一個(gè)用戶的接口,通過(guò)管理員權(quán)限的區(qū)別來(lái)進(jìn)入本系統(tǒng),其他操作者在輸入有誤的情況下拒絕訪問(wèn)。 圖3.1.1登陸界面2、總金額模塊本模塊實(shí)現(xiàn)了設(shè)備信息的錄入功能,能夠向設(shè)備ID、購(gòu)買數(shù)量進(jìn)行錄入,并對(duì)設(shè)備的價(jià)格進(jìn)行結(jié)算。3、 高校部門模塊本模塊實(shí)現(xiàn)了部門的信息錄入,可以向表中添加刪除部門信息,編輯部門信息(部門編號(hào)、部門名稱、狀態(tài)、人數(shù)、負(fù)責(zé)業(yè)務(wù))4、 高校學(xué)院模塊本模塊實(shí)現(xiàn)了高校學(xué)院的信息的
9、修改與刪除,可以修改、刪除、添加表中高校學(xué)院的信息(學(xué)院編號(hào)、學(xué)院姓名、狀態(tài)、人數(shù)、聯(lián)系電話等)5、 設(shè)備管理模塊本模塊實(shí)現(xiàn)了設(shè)備管理功能,對(duì)設(shè)備進(jìn)行產(chǎn)品的入庫(kù)登記、入庫(kù)記錄、庫(kù)存情況的記錄,并查找設(shè)備檢索設(shè)備的種類,對(duì)設(shè)備進(jìn)行添加、修改、刪除的操作。3.2 數(shù)據(jù)庫(kù)概念設(shè)計(jì)設(shè)備信息表E-R圖如圖3.2.1所示 圖3.2.1設(shè)備信息表購(gòu)買記錄表E-R圖如圖3.2.2 圖3.2.2購(gòu)買記錄表3.3 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)設(shè)備信息(設(shè)備編號(hào),設(shè)備名稱,設(shè)備類型,型號(hào),規(guī)格,單價(jià),數(shù)量,購(gòu)買日期,生產(chǎn)廠家,保質(zhì)期,經(jīng)辦人)購(gòu)買記錄(記錄編號(hào),設(shè)備名,類別,型號(hào),規(guī)格,單價(jià),數(shù)量,日期,生產(chǎn)廠家)3.4 數(shù)據(jù)庫(kù)
10、物理設(shè)計(jì) 圖3.4.1 圖3.4.2圖3.4.3圖3.4.43.5 數(shù)據(jù)庫(kù)表間聯(lián)系 圖3.5.1數(shù)據(jù)庫(kù)表間聯(lián)系4系統(tǒng)實(shí)現(xiàn)4.1登錄模塊 系統(tǒng)顯示一個(gè)登陸登陸對(duì)話框,提示輸入用戶名和密碼。 用戶名:1 密碼:3private void button1_Click(object sender, EventArgs e) string str1 = textBox1.Text; string str2&
11、#160;= textBox2.Text; if (str1 = "sa") if (str2 = "") try
12、; SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString="server=localhost;uid=sa;pwd=;database=device" myConnection.Open(); MessageBox.Show("登錄成功");
13、 myConnection.Close(); Form6 obj = new Form6(); obj.Show(); this.Hide(); catch (Sq
14、lException ee) MessageBox.Show(ee.Message); else MessageBo
15、x.Show("密碼不正確,請(qǐng)重新輸入"); textBox2.Focus(); else MessageBox.Sh
16、ow("用戶名不正確,請(qǐng)重新輸入"); textBox1.Focus(); private void button2_Click(object sender, EventArgs e) this.Close(); 4.2 修改
17、模塊實(shí)現(xiàn)用戶可點(diǎn)擊修改按鈕,在對(duì)應(yīng)的文本框上輸入要修改的信息 private void button6_Click(object sender, EventArgs e) cur = this.BindingContextdsdevicelist, "devicelist".Position; setState(false); textBox2.Focus();
18、 4.3 查詢模塊實(shí)現(xiàn)用戶可點(diǎn)擊查詢按鈕,在彈出的對(duì)話框中輸入關(guān)鍵字對(duì)信息進(jìn)行查詢 private void Form2_Load(object sender, EventArgs e) try mySqlConnection = new SqlConnection(); mySqlConnection.ConnectionString="serve
19、r=localhost;uid=sa;pwd=;database=device" DataSet myDataSet = new DataSet(); mySqlDataAdapter = new SqlDataAdapter("select * from devicelist",mySqlConnection); mySqlDataAdapter.Fill(myDataSet,"devic
20、elist"); myDataView = myDataSet.Tables"devicelist".DefaultView; dataGridView1.DataSource = myDataView; catch(Exception ee) MessageBox.Show
21、(ee.Message); private void button1_Click(object sender, EventArgs e) myDataView.RowFilter = textBox1.Text; 4.4添加模塊實(shí)現(xiàn)用戶可點(diǎn)擊添加按鈕,在對(duì)應(yīng)的文本框上輸入要添加的信息 private void button5_Click(object sende
22、r, EventArgs e) cur = this.BindingContextdsdevicelist, "devicelist".Position; textBox1.Text = "" textBox2.Text = "" textBox3.Text = "" textBox4.Text = &
23、quot;" textBox1.Focus(); setState(false);4.5刪除模塊實(shí)現(xiàn)用戶可點(diǎn)擊刪除按鈕,系統(tǒng)將選定的數(shù)據(jù)刪除 private void button9_Click(object sender, EventArgs e) dsdevicelist.Tables"devicelist".Rowsthis.BindingContextdsdevicelist,"devicelist".
24、;Position.Delete(); sqlDataAdapter.Update(dsdevicelist,"devicelist"); 5 代碼調(diào)試與功能測(cè)試5.1 測(cè)試方案對(duì)各個(gè)模板進(jìn)行添加修改、刪除、操作。5.2 測(cè)試結(jié)果圖5.2.1登陸界面圖5.2.2總金額界面圖5.2.3高校部門界面圖5.2.4高校學(xué)院界面圖5.2.5設(shè)備管理界面圖5.2.6產(chǎn)品入庫(kù)記錄界面圖5.2.7產(chǎn)品庫(kù)存情況界面圖5.2.8產(chǎn)品入庫(kù)登記界面6 收獲與體會(huì) 整個(gè)設(shè)計(jì)通過(guò)了軟件和硬件上的調(diào)試。我想這對(duì)于自己以后的學(xué)習(xí)和工作都會(huì)有很大的幫助
25、。在這次設(shè)計(jì)中遇到了很多實(shí)際性的問(wèn)題,在實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書本上理論性的東西與在實(shí)際運(yùn)用中的還是有一定的出入的,所以有些問(wèn)題不但要深入地理解,而且要不斷地更正以前的錯(cuò)誤思維。一切問(wèn)題必須要靠自己一點(diǎn)一滴的解決,而在解決的過(guò)程當(dāng)中你會(huì)發(fā)現(xiàn)自己在飛速的提升。對(duì)于教材管理系統(tǒng),其程序是比較簡(jiǎn)單的,主要是解決程序設(shè)計(jì)中的問(wèn)題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問(wèn)題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過(guò)程中大部分時(shí)間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問(wèn)題所在,這需要對(duì)系統(tǒng)的結(jié)構(gòu)很熟悉。因此可以說(shuō)系統(tǒng)的設(shè)計(jì)是軟件和硬件的結(jié)合,
26、二者是密不可分的。通過(guò)這次課程設(shè)計(jì)我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺(jué)理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過(guò)程中仍有意想不到的困惑,經(jīng)過(guò)一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對(duì)我以后的學(xué)習(xí)產(chǎn)生積極的影響。其次,這次課程設(shè)計(jì)讓我充分認(rèn)識(shí)到團(tuán)隊(duì)合作的重要性,只有分工協(xié)作才能保證整個(gè)項(xiàng)目的有條不絮。另外在課程設(shè)計(jì)的過(guò)程中,當(dāng)我們碰到不明白的問(wèn)題時(shí),指導(dǎo)老師總是耐心的講解,給我們的設(shè)計(jì)以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通過(guò)這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺(jué)
27、得作為一名軟件工程專業(yè)的學(xué)生,這次課程設(shè)計(jì)是很有意義的。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中。雖然自己對(duì)于這門課懂的并不多,很多基礎(chǔ)的東西都還沒(méi)有很好的掌握,覺(jué)得很難,也沒(méi)有很有效的辦法通過(guò)自身去理解,但是靠著這一個(gè)多禮拜的“學(xué)習(xí)”,在小組同學(xué)的幫助和講解下,漸漸對(duì)這門課逐漸產(chǎn)生了些許的興趣,自己開始主動(dòng)學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。我認(rèn)為這個(gè)收獲應(yīng)該說(shuō)是相當(dāng)大的。一開始我們從參考書上找來(lái)了課題,但是畢竟是參考書,做到后來(lái)發(fā)現(xiàn)很多程序都是不完整的,這讓我們傷透了腦筋。看著別的小組都弄得有模有樣了,可是我們連一個(gè)課題都還沒(méi)有定好。好不容易又找到了課題,可是結(jié)果還是很不盡人意。程序接線
28、什么的都弄好了,調(diào)試也沒(méi)有問(wèn)題,可是就是無(wú)法達(dá)到預(yù)期想要的結(jié)果。參考書畢竟只是一個(gè)參考,設(shè)計(jì)這種東西最后還是要靠自己動(dòng)腦筋。然后我們大家一起齊心協(xié)力,從平時(shí)做的實(shí)驗(yàn)老師上課的舉例書本上的知識(shí)以及老師的輔導(dǎo)和其他同學(xué)的幫助下終于完成了。應(yīng)該說(shuō)這是通過(guò)我們小組成員的共同努力和動(dòng)腦完成的,雖然內(nèi)容并不是很復(fù)雜,但是我們覺(jué)得設(shè)計(jì)的過(guò)程相當(dāng)重要,學(xué)到了很多,收獲了很多。我覺(jué)得課程設(shè)計(jì)反映的是一個(gè)從理論到實(shí)際應(yīng)用的過(guò)程,但是更遠(yuǎn)一點(diǎn)可以聯(lián)系到以后畢業(yè)之后從學(xué)校轉(zhuǎn)到踏上社會(huì)的一個(gè)過(guò)程。小組人員的配合相處,以及自身的動(dòng)腦和努力,都是以后工作中需要的。所以我認(rèn)為這次的課程設(shè)計(jì)意義很深,和其他同學(xué)的共同學(xué)習(xí)配合努
29、力的過(guò)程也很愉快,另外還要感謝老師的耐心輔導(dǎo)。參考文獻(xiàn)1 錢雪忠,王燕玲,林挺.數(shù)據(jù)庫(kù)原理及技術(shù)M.北京:清華大學(xué)出版社,2011.2 錢雪忠,羅海馳,陳國(guó)俊.數(shù)據(jù)庫(kù)原理及技術(shù)課程設(shè)計(jì)M.北京:清華大學(xué)出版社,2014.附錄附錄1源程序部分清單附錄1.1登陸代碼package com.view;import com.model.LoginModel;import com.mytools.*;import com.sun.awt.AWTUtilities;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.eve
30、nt.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionAdapter;import javax.imageio.ImageIO;import javax.swing.*;import javax.swing.border.MatteBorder;import java.io.*;import java.util.Vector;Suppress
31、Warnings("serial")public class Login extends JFrame implements MouseListener /全局的位置變量,用于表示鼠標(biāo)在窗口上的位置static Point origin = new Point();/ 定義組件ImagePanel bkim = null;JButton min, close, loginqueding;JComboBox<String> user;JPasswordField password;String allparas = "1"SuppressWar
32、nings("unused")public static void main(String args) / TODO Auto-generated method stubLogin login1 = new Login();public void setbutton(JButton jb) jb.setContentAreaFilled(false);jb.setBorderPainted(false);jb.setFocusPainted(false);jb.addMouseListener(this);jb.setOpaque(false);/ 窗口操作控制菜單publ
33、ic void windowsmenu() min = new JButton(new ImageIcon("image/Loginmin.png");min.setBounds(346, 0, 27, 21);min.setRolloverIcon(new ImageIcon("image/LoginminC.png");setbutton(min);min.setToolTipText("最小化");close = new JButton(new ImageIcon("image/Loginclose.png"
34、);close.setBounds(370, 0, 29, 21);close.setRolloverIcon(new ImageIcon("image/LogincloseC.png");setbutton(close);close.setToolTipText("關(guān)閉");bkim.add(min);bkim.add(close);/ 構(gòu)造函數(shù)public Login() / 設(shè)置窗體的樣式為當(dāng)前系統(tǒng)的樣式try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); c
35、atch (Exception e) / TODO: handle exceptionImage loginbk = null;try loginbk = ImageIO.read(new File("image/loginbk.png"); catch (IOException e) / TODO: handle exceptione.printStackTrace();/ 窗口背景面板bkim = new ImagePanel(loginbk);bkim.setLayout(null);Vector<String> userid = LoginModel.f
36、ind("select Uid from UserLogin where 1 = ?", allparas);user = new JComboBox<String>(userid);user.setEditable(true);user.setBounds(131, 145, 187, 26);user.setFont(MyFont.login);user.addMouseListener(this);JScrollPane jsp = new JScrollPane();jsp.add(user);jsp.setBounds(131, 145, 187, 2
37、6);jsp.setEnabled(true);password = new JPasswordField(50);password.setEditable(true);password.setBounds(135, 180, 178, 25);password.setBorder(new MatteBorder(0, 0, 0, 0, Color.blue);password.setFont(MyFont.login);password.setEchoChar('*');loginqueding = new JButton(new ImageIcon("image/
38、loginqueding.png");loginqueding.setRolloverIcon(new ImageIcon("image/loginquedingC.png");loginqueding.setBounds(110, 253, 180, 31);setbutton(loginqueding);bkim.add(user);bkim.add(password);bkim.add(loginqueding);windowsmenu();this.setUndecorated(true);WindowMove();setOpacity();this.ad
39、d(bkim);this.setSize(400, 290);this.setVisible(true);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 窗體移動(dòng)函數(shù)public void WindowMove() /設(shè)置沒(méi)有標(biāo)題的窗口可以拖動(dòng)this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是點(diǎn)擊,而是鼠標(biāo)被按下沒(méi)有抬起)
40、origin.x = e.getX(); /當(dāng)鼠標(biāo)按下的時(shí)候獲得窗口當(dāng)前的位置 origin.y = e.getY(); );this.addMouseMotionListener(new MouseMotionAdapter() public void mouseDragged(MouseEvent e) Point p =getLocation(); /當(dāng)鼠標(biāo)拖動(dòng)時(shí)獲取窗口當(dāng)前位置 /設(shè)置窗口的位置 /窗口當(dāng)前的位置 + 鼠標(biāo)當(dāng)前在窗口的位置 - 鼠標(biāo)按下的時(shí)候在窗口的位置 setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - or
41、igin.y); );Overridepublic void mouseClicked(MouseEvent e) / TODO Auto-generated method stubif(e.getSource() = min) setState(JFrame.ICONIFIED);if(e.getSource() = close) dispose();if(e.getSource() = loginqueding) String userid = user.getSelectedItem().toString().trim();String upassword = new String(th
42、is.password.getPassword();if (userid.equals("") JOptionPane.showMessageDialog(this, "請(qǐng)輸入用戶名再登錄");return;if (upassword.equals("") JOptionPane.showMessageDialog(this, "請(qǐng)輸入密碼再登錄");return;if (userid.equals("admin") | upassword.equals("admin") n
43、ew UserMainWindows();this.dispose();return;if (!LoginModel.checkid(userid) JOptionPane.showMessageDialog(this, "<html><br/>抱歉 <font color = 'red'>"+userid+"</font> 沒(méi)有登錄此系統(tǒng)的權(quán)限<br/>");return;if (LoginModel.checkpassword(userid,
44、upassword) new UserMainWindows();else JOptionPane.showMessageDialog(this, "密碼不正確,請(qǐng)重新輸入密碼");this.password.setText("");return;Overridepublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method s
45、tubOverridepublic void mousePressed(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseReleased(MouseEvent e) / TODO Auto-generated method stub/ 窗口淡入淡出函數(shù)public void setOpacity() / 窗口設(shè)置淡入淡出代碼段AWTUtilities.setWindowOpacity(Login.this, 0f);ActionListener lisener = new ActionListene
46、r() float alpha = 0;Overridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubif (alpha < 0.9) AWTUtilities.setWindowOpacity(Login.this, alpha+=0.1);else AWTUtilities.setWindowOpacity(Login.this, 1);Timer source = (Timer) e.getSource();source.stop();/ 設(shè)置線程控制new Timer(50,
47、 lisener).start();附錄1.2 用戶界面部分代碼package com.view;import com.mytools.*;import com.sun.awt.AWTUtilities;import java.awt.*;import java.awt.event.*;import java.io.File;import javax.imageio.*;import javax.swing.*;SuppressWarnings("serial")public class UserMainWindows extends JFrame implements A
48、ctionListener, MouseListener, WindowListener,ItemListener /全局的位置變量,用于表示鼠標(biāo)在窗口上的位置static Point origin = new Point(); / 用于獲得窗口的大小final static int width=Toolkit.getDefaultToolkit().getScreenSize().width;final static int height=Toolkit.getDefaultToolkit().getScreenSize().height;ImagePanel im = null;/ 主窗體
49、背景面板JPanel jTop, jMenu, jMenu1, jControl;/ 窗口控制菜單JLabel omenu, min, max1, close;JToggleButton max;/ 窗口菜單JLabel shoukuan, empmanager, mebmanager, product, salcount, pagemanager;JPanel conjp;CardLayout card;public static void main(String args) / TODO Auto-generated method stub/UserMainWindows T = new
50、UserMainWindows();/ 窗體移動(dòng)函數(shù)public void WindowMove() /設(shè)置沒(méi)有標(biāo)題的窗口可以拖動(dòng)this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是點(diǎn)擊,而是鼠標(biāo)被按下沒(méi)有抬起) origin.x = e.getX(); /當(dāng)鼠標(biāo)按下的時(shí)候獲得窗口當(dāng)前的位置 origin.y = e.getY(); );this.addMouseMotionListener(new MouseMotionAdapter() publ
51、ic void mouseDragged(MouseEvent e) Point p =getLocation(); /當(dāng)鼠標(biāo)拖動(dòng)時(shí)獲取窗口當(dāng)前位置 /設(shè)置窗口的位置 /窗口當(dāng)前的位置 + 鼠標(biāo)當(dāng)前在窗口的位置 - 鼠標(biāo)按下的時(shí)候在窗口的位置 setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); );/ 優(yōu)化定義菜單labelpublic JLabel CreateMenuLabel(JLabel jlb, String name, JPanel who) jlb = new JLabel(name, JLabel
52、.CENTER);jlb.setFont(MyFont.TopMenu);jlb.addMouseListener(this);jlb.setForeground(Color.black);who.add(jlb);return jlb;/ 主界面左側(cè)菜單欄定義public void initTopMenu() jMenu = new JPanel(new GridLayout(1, 6);jMenu.setPreferredSize(new Dimension(int)(width*0.55), 62);jMenu.setOpaque(false);String nameStrings =
53、"總金額", "高校部門", "高校學(xué)院", "設(shè)備管理", "", ""shoukuan = CreateMenuLabel(shoukuan, nameStrings0, jMenu);shoukuan.setForeground(Color.yellow);shoukuan.setName("shoukuan");empmanager = CreateMenuLabel(empmanager, nameStrings1, jMenu);empmana
54、ger.setName("empmanager");mebmanager = CreateMenuLabel(mebmanager, nameStrings2, jMenu);mebmanager.setName("mebmanager");product = CreateMenuLabel(product, nameStrings3, jMenu);product.setName("product");salcount = CreateMenuLabel(salcount, nameStrings4, jMenu);salcount
55、.setName("salcount");pagemanager = CreateMenuLabel(pagemanager, nameStrings5, jMenu);pagemanager.setName("pagemanager");/ 為了方便布局使用的空面板jMenu1 = new JPanel();jMenu1.setPreferredSize(new Dimension(40, 62);jMenu1.setOpaque(false);/ 頂層窗口右側(cè)窗口控制菜單public void initTopControl() jControl =
56、new JPanel(new GridLayout(1, 4);jControl.setPreferredSize(new Dimension(140, 62);jControl.setOpaque(false);omenu = new JLabel(new ImageIcon("image/omenu.png");omenu.addMouseListener(this);omenu.setToolTipText("更多");min = new JLabel(new ImageIcon("image/min.png");min.addMouseListener(this);min.setToolTipText("最小化");max = new JToggleButton(new ImageIcon("image/max.png");max.setFocusPainted(false);max.setBorderPainted(false);max.setContentAreaFilled(false);max.addItemListener(this);max.addMouseListener(this);max.setToolTipText("最大化")
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨沂職業(yè)學(xué)院《意大利文學(xué)史》2023-2024學(xué)年第二學(xué)期期末試卷
- 教具及類似用具項(xiàng)目安全評(píng)估報(bào)告
- 長(zhǎng)春工程學(xué)院《車輛設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京化工大學(xué)《建筑模型》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省蘇州市市轄區(qū)市級(jí)名校2025年初三下學(xué)期期中考試物理試題(文理)試卷含解析
- 同濟(jì)大學(xué)《醫(yī)學(xué)美容護(hù)理》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津音樂(lè)學(xué)院《當(dāng)代世界文學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河北公安警察職業(yè)學(xué)院《燃?xì)廨斉湔n程設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 燕山大學(xué)《法語(yǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)沙醫(yī)學(xué)院《互聯(lián)網(wǎng)金融服務(wù)營(yíng)銷》2023-2024學(xué)年第二學(xué)期期末試卷
- 幼兒園大班繪本《愛(ài)書的孩子》無(wú)聲PPT
- DB3311T 132-2020 住宅小區(qū)物業(yè)服務(wù)規(guī)范
- (中職)門店運(yùn)營(yíng)實(shí)務(wù)教學(xué)ppt課件(完整版)
- 2022更新國(guó)家開放大學(xué)電大《計(jì)算機(jī)應(yīng)用基礎(chǔ)(專)》終結(jié)性考試大作業(yè)答案任務(wù)一
- 3.無(wú)人機(jī)在風(fēng)電系統(tǒng)應(yīng)用解決方案
- 廣東省異地就醫(yī)備案登記表
- 人教鄂教版四年級(jí)下冊(cè)科學(xué)全冊(cè)教案
- SIEMENS-S120變頻器硬件、軟件培訓(xùn)(高端培訓(xùn))課件
- CA6132普通車床使用說(shuō)明書
- 混凝土拆模令
評(píng)論
0/150
提交評(píng)論