高校設(shè)備管理系統(tǒng)_第1頁
高校設(shè)備管理系統(tǒng)_第2頁
高校設(shè)備管理系統(tǒng)_第3頁
高校設(shè)備管理系統(tǒng)_第4頁
高校設(shè)備管理系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、高校設(shè)備管理系統(tǒng)數(shù)據(jù)庫課程實訓(xùn)報告 1目 錄1 課題內(nèi)容和要求11.1課題描述11.2 課題要求12 需求分析12.1 功能需求分析12.2 數(shù)據(jù)需求分析13 系統(tǒng)設(shè)計33.1 功能模塊設(shè)計73.2 數(shù)據(jù)庫概念設(shè)計73.3 數(shù)據(jù)庫邏輯設(shè)計93.4 數(shù)據(jù)庫物理設(shè)計93.5 數(shù)據(jù)庫表間聯(lián)系94系統(tǒng)實現(xiàn)104.1 登陸模塊實現(xiàn)104.2 修改模塊實現(xiàn)104.3 查詢模塊實現(xiàn)104.4 添加模塊實現(xiàn)104.5 刪除模塊實現(xiàn)105 代碼調(diào)試與功能測試115.1 測試方案115.2 測試結(jié)果116 收獲與體會14參考文獻17附錄18附錄1源程序部分清單18附錄1.1登陸代碼183高校設(shè)備管理系統(tǒng)1 課題內(nèi)

2、容和要求 1.1課題描述設(shè)備管理是企、事業(yè)單位中的一項主要管理工作,特別是對于企、事業(yè)單位的決策者和管理者來說,設(shè)備管理工作都是至關(guān)重要的,作為計算機應(yīng)用的一部分,使用計算機對設(shè)備信息進行管理,有著手工管理所無法比擬的優(yōu)點,因此要求系統(tǒng)能夠:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等,以此來提高設(shè)備管理的工作效率,達到預(yù)期的目的,從而為用戶提供充足的信息和快捷的查詢手段以管理相關(guān)的設(shè)備信息。1.2 課題要求2 需求分析2.1 功能需求分析 本設(shè)備管理系統(tǒng)應(yīng)具備對設(shè)備相關(guān)信息進行錄入,刪除,修改,查詢,輸出,折舊等基本操作,并將其數(shù)據(jù)傳遞到數(shù)據(jù)庫中存儲。使用國家標(biāo)準(zhǔn)設(shè)備分

3、類編碼方法,能夠?qū)崿F(xiàn)對設(shè)備代碼的維護。能夠使用戶方便的進行檢索查詢相關(guān)設(shè)備信息。能夠?qū)崿F(xiàn)對數(shù)據(jù)的備份和恢復(fù)。具體功能如下圖所示:用 戶 登 錄折舊更新輸出備份查詢添加修改恢復(fù)分類檢索全表查詢刪除圖2.11. 設(shè)備的添加功能:添加新的設(shè)備,包括:設(shè)備編號、設(shè)備名稱、設(shè)備類別、設(shè)備單價等。2、設(shè)備的刪除功能:刪除設(shè)備的信息,包括:設(shè)備編號、設(shè)備名稱、設(shè)備類別、使用單位等。3、設(shè)備的修改功能:修改設(shè)備的信息,包括:修改設(shè)備編號、設(shè)備名稱、設(shè)備類別、設(shè)備單價、折舊率等。4、設(shè)備的查詢功能:查詢設(shè)備的信息,包括:設(shè)備的編號、名稱、類別、使用單位、單價、折舊率等信息。5、設(shè)備的折舊功能:對現(xiàn)有設(shè)備進行折舊

4、計算輸出設(shè)備的現(xiàn)有價值。6、數(shù)據(jù)備份功能:對數(shù)據(jù)庫中的數(shù)據(jù)進行備份,用來還原數(shù)據(jù)庫。7、數(shù)據(jù)恢復(fù)功能:對數(shù)據(jù)庫進行恢復(fù),是數(shù)據(jù)庫恢復(fù)到備份前的狀態(tài)。2.2 數(shù)據(jù)需求分析2.2.1數(shù)據(jù)流圖P02國家標(biāo)準(zhǔn)設(shè)備分類表P03設(shè)備使用單位代碼表D05操作成功信息D06操作P01設(shè)備使用明細(xì)表A02更新、維護、查詢、折舊、備份和還原數(shù)據(jù)D01驗證錯誤信息用戶登錄D02登錄信息A03身份驗證A01輸 出D03操作信息D04反饋信息圖2.2 數(shù)據(jù)流圖2.2.2數(shù)據(jù)字典(1)數(shù)據(jù)流的描述數(shù)據(jù)流編號: D01數(shù)據(jù)流名稱: 驗證信息數(shù)據(jù)流來源: 用戶輸入與數(shù)據(jù)庫數(shù)據(jù)流去向: 系統(tǒng)判斷數(shù)據(jù)流組成: 用戶名+密碼等數(shù)據(jù)

5、流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號: D02數(shù)據(jù)流名稱: 登錄信息數(shù)據(jù)流來源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)判斷數(shù)據(jù)流組成: 用戶名+密碼等數(shù)據(jù)流量:1000/天高峰流量:3000/天數(shù)據(jù)流編號: D03數(shù)據(jù)流名稱: 操作信息數(shù)據(jù)流來源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)選擇數(shù)據(jù)流組成: 各種功能等數(shù)據(jù)流量:2000/天高峰流量:50000/天數(shù)據(jù)流編號: D04數(shù)據(jù)流名稱: 反饋信息數(shù)據(jù)流來源: 用戶輸入數(shù)據(jù)流去向: 系統(tǒng)選擇數(shù)據(jù)流組成: 輸出功能數(shù)據(jù)流量:2000/天高峰流量:50000/天數(shù)據(jù)流編號: D05數(shù)據(jù)流名稱: 操作成功信息數(shù)據(jù)流來源: 用戶輸入數(shù)據(jù)流去向: 數(shù)據(jù)庫數(shù)據(jù)

6、流組成: 設(shè)備信息數(shù)據(jù)流量:5000天高峰流量:15000/天數(shù)據(jù)流編號: D06數(shù)據(jù)流名稱: 操作6信息數(shù)據(jù)流來源: 用戶輸入數(shù)據(jù)流去向: 數(shù)據(jù)庫數(shù)據(jù)流組成: 國家標(biāo)準(zhǔn)設(shè)備信息數(shù)據(jù)流量:5000天高峰流量:15000/天 (2)處理邏輯描述處理邏輯編號:A01處理邏輯名稱:輸出信息。輸出的數(shù)據(jù)流:設(shè)備明細(xì)帳信息處理頻率: 10次/天處理邏輯編號:A02處理邏輯名稱:功能信息。輸出的數(shù)據(jù)流:設(shè)備標(biāo)準(zhǔn)信息處理頻率: 10次/天處理邏輯編號:A03處理邏輯名稱:驗證信息。輸人的數(shù)據(jù)流:用戶基本信息處理頻率: 10次/天 (3)數(shù)據(jù)儲存描述數(shù)據(jù)存儲編號:P01數(shù)據(jù)存儲名稱:設(shè)備使用明細(xì)信息 簡述:設(shè)

7、備的基本信息數(shù)據(jù)存儲組成:用戶名+密碼關(guān)鍵字:設(shè)備編號,單位編號,使用數(shù)量,折扣,單價相關(guān)聯(lián)的處理:A01數(shù)據(jù)存儲編號:P02數(shù)據(jù)存儲名稱:國家標(biāo)準(zhǔn)設(shè)備分類信息 簡述:國家標(biāo)準(zhǔn)設(shè)備基本信息數(shù)據(jù)存儲組成:用戶名+密碼關(guān)鍵字:設(shè)備編號,設(shè)備類別,設(shè)備名稱,生產(chǎn)廠家,單價(元)相關(guān)聯(lián)的處理:A02數(shù)據(jù)存儲編號:P03數(shù)據(jù)存儲名稱:設(shè)備使用單位信息 簡述:單位基本信息數(shù)據(jù)存儲組成:用戶名+密碼關(guān)鍵字:單位編號,單位名稱,單位電話,單位地址 相關(guān)聯(lián)的處理:A02(4)外部實體的描述外部實體名稱:用戶簡述:使用設(shè)備管理系統(tǒng)的人輸入的數(shù)據(jù)流:D02輸出的數(shù)據(jù)流:D01,D03外部實體名稱:設(shè)備簡述:國家標(biāo)準(zhǔn)

8、設(shè)備信息輸入的數(shù)據(jù)流: D06以下為具體數(shù)據(jù)庫中使用的表的詳細(xì)信息:設(shè)備使用明細(xì)表 列 名 數(shù)據(jù)類型 長度 是否為空設(shè)備編號 char 20 否單位編號 char 20 否使用數(shù)量 int 4 是折扣 float 8 是 單價 float 8 是設(shè)備名稱 char 20 是設(shè)備使用單位代碼表列 名數(shù)據(jù)類型長度是否為空單位編號 char20 否單位名稱 char 20 是單位電話 char 20 是單位地址 char 20 是國家標(biāo)準(zhǔn)設(shè)備分類表列 名數(shù)據(jù)類型長度是否為空設(shè)備編號 char 20 否設(shè)備類別  char 20 是設(shè)備名稱 char 20 是生產(chǎn)廠家 char 20 是單價

9、(元) float 8 是3 系統(tǒng)設(shè)計3.1 功能模塊設(shè)計1、登陸模塊本模塊實現(xiàn)了管理員登陸系統(tǒng)的功能,是系統(tǒng)的第一個用戶的接口,通過管理員權(quán)限的區(qū)別來進入本系統(tǒng),其他操作者在輸入有誤的情況下拒絕訪問。 圖3.1.1登陸界面2、總金額模塊本模塊實現(xiàn)了設(shè)備信息的錄入功能,能夠向設(shè)備ID、購買數(shù)量進行錄入,并對設(shè)備的價格進行結(jié)算。3、 高校部門模塊本模塊實現(xiàn)了部門的信息錄入,可以向表中添加刪除部門信息,編輯部門信息(部門編號、部門名稱、狀態(tài)、人數(shù)、負(fù)責(zé)業(yè)務(wù))4、 高校學(xué)院模塊本模塊實現(xiàn)了高校學(xué)院的信息的修改與刪除,可以修改、刪除、添加表中高校學(xué)院的信息(學(xué)院編號、學(xué)院姓名、狀態(tài)、人數(shù)、聯(lián)系電話等)

10、5、 設(shè)備管理模塊本模塊實現(xiàn)了設(shè)備管理功能,對設(shè)備進行產(chǎn)品的入庫登記、入庫記錄、庫存情況的記錄,并查找設(shè)備檢索設(shè)備的種類,對設(shè)備進行添加、修改、刪除的操作。3.2 數(shù)據(jù)庫概念設(shè)計設(shè)備信息表E-R圖如圖3.2.1所示 圖3.2.1設(shè)備信息表購買記錄表E-R圖如圖3.2.2 圖3.2.2購買記錄表3.3 數(shù)據(jù)庫邏輯設(shè)計設(shè)備信息(設(shè)備編號,設(shè)備名稱,設(shè)備類型,型號,規(guī)格,單價,數(shù)量,購買日期,生產(chǎn)廠家,保質(zhì)期,經(jīng)辦人)購買記錄(記錄編號,設(shè)備名,類別,型號,規(guī)格,單價,數(shù)量,日期,生產(chǎn)廠家)3.4 數(shù)據(jù)庫物理設(shè)計 圖3.4.1 圖3.4.2圖3.4.3圖3.4.43.5 數(shù)據(jù)庫表間聯(lián)系 圖3.5.1

11、數(shù)據(jù)庫表間聯(lián)系4系統(tǒng)實現(xiàn)4.1登錄模塊 系統(tǒng)顯示一個登陸登陸對話框,提示輸入用戶名和密碼。 用戶名:1 密碼:3private void button1_Click(object sender, EventArgs e)   string str1 = textBox1.Text;    string str2 = textBox2.Text;   

12、0; if (str1 = "sa")           if (str2 = "123456789")               try       &#

13、160;  SqlConnection myConnection = new SqlConnection(); myConnection.ConnectionString="server=localhost;uid=sa;pwd=123456789;database=device" myConnection.Open(); MessageBox.Show("登錄成功");       myConn

14、ection.Close();       Form6 obj = new Form6();       obj.Show();       this.Hide();        catch (SqlException ee)  

15、;      MessageBox.Show(ee.Message);                        else        MessageBox.Show("密碼不正確,請重新輸入"

16、);        textBox2.Focus();                     else          MessageBox.Show("用戶名不正確,請重新輸入");&

17、#160;     textBox1.Focus();              private void button2_Click(object sender, EventArgs e)    this.Close();  4.2 修改模塊實現(xiàn)用戶可點擊修改按鈕,在對應(yīng)的文本框上輸入要修改的信息

18、 private void button6_Click(object sender, EventArgs e)   cur = this.BindingContextdsdevicelist, "devicelist".Position;   setState(false);  textBox2.Focus();    4.3 查詢模塊實現(xiàn)用戶可點擊查詢按鈕,在彈出的

19、對話框中輸入關(guān)鍵字對信息進行查詢 private void Form2_Load(object sender, EventArgs e)     try      mySqlConnection = new SqlConnection(); mySqlConnection.ConnectionString="server=localhost;uid=sa;pwd=1234567

20、89;database=device" DataSet myDataSet = new DataSet();    mySqlDataAdapter = new SqlDataAdapter("select * from devicelist",mySqlConnection); mySqlDataAdapter.Fill(myDataSet,"devicelist"); my

21、DataView = myDataSet.Tables"devicelist".DefaultView;             dataGridView1.DataSource = myDataView;   catch(Exception ee)    MessageBox.Show(ee.Message); &#

22、160;     private void button1_Click(object sender, EventArgs e)   myDataView.RowFilter = textBox1.Text; 4.4添加模塊實現(xiàn)用戶可點擊添加按鈕,在對應(yīng)的文本框上輸入要添加的信息 private void button5_Click(object sender, EventArgs

23、0;e)   cur = this.BindingContextdsdevicelist, "devicelist".Position; textBox1.Text = "" textBox2.Text = ""  textBox3.Text = "" textBox4.Text = "" text

24、Box1.Focus(); setState(false);4.5刪除模塊實現(xiàn)用戶可點擊刪除按鈕,系統(tǒng)將選定的數(shù)據(jù)刪除 private void button9_Click(object sender, EventArgs e)    dsdevicelist.Tables"devicelist".Rowsthis.BindingContextdsdevicelist,"devicelist". Position.Delete();&#

25、160;sqlDataAdapter.Update(dsdevicelist,"devicelist");    5 代碼調(diào)試與功能測試5.1 測試方案對各個模板進行添加修改、刪除、操作。5.2 測試結(jié)果圖5.2.1登陸界面圖5.2.2總金額界面圖5.2.3高校部門界面圖5.2.4高校學(xué)院界面圖5.2.5設(shè)備管理界面圖5.2.6產(chǎn)品入庫記錄界面圖5.2.7產(chǎn)品庫存情況界面圖5.2.8產(chǎn)品入庫登記界面6 收獲與體會 整個設(shè)計通過了軟件和硬件上的調(diào)試。我想這對于自己以后的學(xué)習(xí)和工作都會有很大的幫助。在這次設(shè)計中遇到了很多實際性的問題,在實

26、際設(shè)計中才發(fā)現(xiàn),書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。一切問題必須要靠自己一點一滴的解決,而在解決的過程當(dāng)中你會發(fā)現(xiàn)自己在飛速的提升。對于教材管理系統(tǒng),其程序是比較簡單的,主要是解決程序設(shè)計中的問題,而程序設(shè)計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力,它才是一個設(shè)計的靈魂所在。因此在整個設(shè)計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關(guān)鍵的問題所在,這需要對系統(tǒng)的結(jié)構(gòu)很熟悉。因此可以說系統(tǒng)的設(shè)計是軟件和硬件的結(jié)合,二者是密不可分的。通過這次課程設(shè)計我也發(fā)現(xiàn)

27、了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對我以后的學(xué)習(xí)產(chǎn)生積極的影響。其次,這次課程設(shè)計讓我充分認(rèn)識到團隊合作的重要性,只有分工協(xié)作才能保證整個項目的有條不絮。另外在課程設(shè)計的過程中,當(dāng)我們碰到不明白的問題時,指導(dǎo)老師總是耐心的講解,給我們的設(shè)計以極大的幫助,使我們獲益匪淺。因此非常感謝老師的教導(dǎo)。通過這次設(shè)計,我懂得了學(xué)習(xí)的重要性,了解到理論知識與實踐相結(jié)合的重要意義,學(xué)會了堅持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。我覺得作為一名軟件工程專業(yè)的學(xué)生,這次課程設(shè)計

28、是很有意義的。更重要的是如何把自己平時所學(xué)的東西應(yīng)用到實際中。雖然自己對于這門課懂的并不多,很多基礎(chǔ)的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個多禮拜的“學(xué)習(xí)”,在小組同學(xué)的幫助和講解下,漸漸對這門課逐漸產(chǎn)生了些許的興趣,自己開始主動學(xué)習(xí)并逐步從基礎(chǔ)慢慢開始弄懂它。我認(rèn)為這個收獲應(yīng)該說是相當(dāng)大的。一開始我們從參考書上找來了課題,但是畢竟是參考書,做到后來發(fā)現(xiàn)很多程序都是不完整的,這讓我們傷透了腦筋。看著別的小組都弄得有模有樣了,可是我們連一個課題都還沒有定好。好不容易又找到了課題,可是結(jié)果還是很不盡人意。程序接線什么的都弄好了,調(diào)試也沒有問題,可是就是無

29、法達到預(yù)期想要的結(jié)果。參考書畢竟只是一個參考,設(shè)計這種東西最后還是要靠自己動腦筋。然后我們大家一起齊心協(xié)力,從平時做的實驗老師上課的舉例書本上的知識以及老師的輔導(dǎo)和其他同學(xué)的幫助下終于完成了。應(yīng)該說這是通過我們小組成員的共同努力和動腦完成的,雖然內(nèi)容并不是很復(fù)雜,但是我們覺得設(shè)計的過程相當(dāng)重要,學(xué)到了很多,收獲了很多。我覺得課程設(shè)計反映的是一個從理論到實際應(yīng)用的過程,但是更遠(yuǎn)一點可以聯(lián)系到以后畢業(yè)之后從學(xué)校轉(zhuǎn)到踏上社會的一個過程。小組人員的配合相處,以及自身的動腦和努力,都是以后工作中需要的。所以我認(rèn)為這次的課程設(shè)計意義很深,和其他同學(xué)的共同學(xué)習(xí)配合努力的過程也很愉快,另外還要感謝老師的耐心輔

30、導(dǎo)。27參考文獻1 錢雪忠,王燕玲,林挺.數(shù)據(jù)庫原理及技術(shù)M.北京:清華大學(xué)出版社,2011.2 錢雪忠,羅海馳,陳國俊.數(shù)據(jù)庫原理及技術(shù)課程設(shè)計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.event.ActionListener;i

31、mport 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;SuppressWarnings("seri

32、al")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"SuppressWarnings("unused&

33、quot;)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);/ 窗口操作控制菜單public void windowsmenu

34、() 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");close.setBounds(3

35、70, 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(); catch (Exception e)

36、/ 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.find("select Ui

37、d 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, 26);jsp.setEnabled(t

38、rue);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/loginqueding.png&qu

39、ot;);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.add(bkim);this.setSiz

40、e(400, 290);this.setVisible(true);this.setLocationRelativeTo(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 窗體移動函數(shù)public void WindowMove() /設(shè)置沒有標(biāo)題的窗口可以拖動this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是點擊,而是鼠標(biāo)被按下沒有抬起) origin.x = e.getX()

41、; /當(dāng)鼠標(biāo)按下的時候獲得窗口當(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)前的位置 + 鼠標(biāo)當(dāng)前在窗口的位置 - 鼠標(biāo)按下的時候在窗口的位置 setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); );Override

42、public 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(this.password.getPass

43、word();if (userid.equals("") JOptionPane.showMessageDialog(this, "請輸入用戶名再登錄");return;if (upassword.equals("") JOptionPane.showMessageDialog(this, "請輸入密碼再登錄");return;if (userid.equals("admin") | upassword.equals("admin") new UserMainWindows(

44、);this.dispose();return;if (!LoginModel.checkid(userid) JOptionPane.showMessageDialog(this, "<html><br/>抱歉&nbsp<font color = 'red'>"+userid+"</font>&nbsp沒有登錄此系統(tǒng)的權(quán)限<br/>");return;if (LoginModel.checkpassword(userid, upassword) new User

45、MainWindows();else JOptionPane.showMessageDialog(this, "密碼不正確,請重新輸入密碼");this.password.setText("");return;Overridepublic void mouseEntered(MouseEvent e) / TODO Auto-generated method stubOverridepublic void mouseExited(MouseEvent e) / TODO Auto-generated method stubOverridepublic v

46、oid 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 ActionListener() float alpha = 0

47、;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, lisener).start();附

48、錄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 ActionListener, Mous

49、eListener, 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;/ 主窗體背景面板JPanel jTop, jM

50、enu, 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 UserMainWindows();/

51、 窗體移動函數(shù)public void WindowMove() /設(shè)置沒有標(biāo)題的窗口可以拖動this.addMouseListener(new MouseAdapter() public void mousePressed(MouseEvent e) /按下(mousePressed 不是點擊,而是鼠標(biāo)被按下沒有抬起) origin.x = e.getX(); /當(dāng)鼠標(biāo)按下的時候獲得窗口當(dāng)前的位置 origin.y = e.getY(); );this.addMouseMotionListener(new MouseMotionAdapter() public void mouseDragge

52、d(MouseEvent e) Point p =getLocation(); /當(dāng)鼠標(biāo)拖動時獲取窗口當(dāng)前位置 /設(shè)置窗口的位置 /窗口當(dāng)前的位置 + 鼠標(biāo)當(dāng)前在窗口的位置 - 鼠標(biāo)按下的時候在窗口的位置 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.CENTER);jlb.setFon

53、t(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 = "總金額", &q

54、uot;高校部門", "高校學(xué)院", "設(shè)備管理", "", ""shoukuan = CreateMenuLabel(shoukuan, nameStrings0, jMenu);shoukuan.setForeground(Color.yellow);shoukuan.setName("shoukuan");empmanager = CreateMenuLabel(empmanager, nameStrings1, jMenu);empmanager.setName("e

55、mpmanager");mebmanager = CreateMenuLabel(mebmanager, nameStrings2, jMenu);mebmanager.setName("mebmanager");product = CreateMenuLabel(product, nameStrings3, jMenu);product.setName("product");salcount = CreateMenuLabel(salcount, nameStrings4, jMenu);salcount.setName("salc

56、ount");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 = 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(thi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論