版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 1 前言1</b></p><p><b> 2 需求分析1</b></p><p> 2.1 課程設(shè)計(jì)目的1</p><p> 2.2 課程設(shè)計(jì)任務(wù)1</p><p&g
2、t; 2.3 設(shè)計(jì)環(huán)境1</p><p> 2.4 開發(fā)語(yǔ)言2</p><p><b> 3 分析和設(shè)計(jì)2</b></p><p> 3.1 系統(tǒng)E-R模型2</p><p> 3.2 表空間及表的設(shè)計(jì)2</p><p> 3.3 視圖設(shè)計(jì)5</p><
3、p> 3.4 存儲(chǔ)過程、函數(shù)、包的設(shè)計(jì)6</p><p> 3.5 觸發(fā)器設(shè)計(jì)7</p><p> 3.6 角色、用戶、權(quán)限設(shè)計(jì)8</p><p> 3.7 備份方案設(shè)計(jì)9</p><p> 4 課程設(shè)計(jì)總結(jié)9</p><p> 4.1 程序運(yùn)行結(jié)果9</p><p&g
4、t; 4.2 設(shè)計(jì)結(jié)論11</p><p><b> 參考文獻(xiàn)12</b></p><p><b> 致 謝12</b></p><p><b> 附 錄13</b></p><p><b> 1 前言</b></p>
5、<p> 設(shè)計(jì)一個(gè)個(gè)人記賬管理系統(tǒng),用JAVA來編寫。綜合運(yùn)用JAVA的基礎(chǔ)和算法設(shè)計(jì)的基本原則,用PLSQL Developer,orcale等工具實(shí)現(xiàn)。功能包括收入記錄、支出記錄、查詢功能、報(bào)表,并將記錄保存在數(shù)據(jù)庫(kù)中,通過連接數(shù)據(jù)庫(kù)可以查詢所有記錄,可以通過選擇日期將符合條件的記錄顯示在查詢框中,可以選擇收入或支出查詢收入記錄或者支出記錄。用戶可以通過報(bào)表了解到指定時(shí)間段內(nèi)收入總和、支出總和、余額。</p>
6、;<p><b> 2 需求分析</b></p><p> 2.1 課程設(shè)計(jì)目的</p><p> 通過專業(yè)課程設(shè)計(jì)Ⅱ,即大型數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì),有助于培養(yǎng)學(xué)生綜合運(yùn)用數(shù)據(jù)庫(kù)相關(guān)知識(shí)解決實(shí)際問題的能力。本設(shè)計(jì)要求對(duì)實(shí)際問題進(jìn)行需求分析,提煉實(shí)際問題中的數(shù)據(jù),建立關(guān)系模型,并在大型數(shù)據(jù)庫(kù)中得以實(shí)現(xiàn)。同時(shí)要求對(duì)數(shù)據(jù)庫(kù)的運(yùn)營(yíng)、管理及使用上進(jìn)行必要的規(guī)劃和
7、實(shí)現(xiàn)。</p><p> 2.2 課程設(shè)計(jì)任務(wù)</p><p> 針對(duì)某管理信息系統(tǒng)的需求,設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。具體內(nèi)容如下:</p><p> 根據(jù)需求,建立ER模型。通過ER圖表示。</p><p> 在此基礎(chǔ)上,設(shè)計(jì)物理表結(jié)構(gòu),編寫創(chuàng)建數(shù)據(jù)庫(kù)表的語(yǔ)句。較高要求為在設(shè)計(jì)創(chuàng)建數(shù)據(jù)表語(yǔ)句的同時(shí)考慮性能上的要求,采用相關(guān)的磁盤存儲(chǔ)技術(shù)。
8、</p><p> 從實(shí)際查詢應(yīng)用出發(fā),為一些主要的應(yīng)用模塊設(shè)計(jì)至少3個(gè)參數(shù)化視圖。</p><p> 針對(duì)常用的業(yè)務(wù),創(chuàng)建包,同時(shí)實(shí)現(xiàn)一個(gè)函數(shù)放入包中。</p><p> 從數(shù)據(jù)檢驗(yàn)的角度出發(fā),為相關(guān)的表建立至少1個(gè)觸發(fā)器。</p><p> 從數(shù)據(jù)更新或修改的角度出發(fā),設(shè)計(jì)至少1個(gè)存儲(chǔ)過程。</p><p>
9、; 從安全的角度出發(fā),規(guī)劃系統(tǒng)的角色、用戶、權(quán)限,并通過SQL實(shí)現(xiàn)。</p><p> 預(yù)計(jì)每個(gè)表的大致容量和增長(zhǎng)速度。指定備份的方案,寫出相關(guān)的備份命令。</p><p> 以上所有命令及腳本均需測(cè)試,在設(shè)計(jì)報(bào)告中說明其功能并記錄其輸出。</p><p><b> 2.3 設(shè)計(jì)環(huán)境</b></p><p>
10、(1)WINDOWS 2000/2003/XP系統(tǒng)</p><p> ?。?)Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)</p><p><b> 2.4 開發(fā)語(yǔ)言</b></p><p><b> PL/SQL語(yǔ)言</b></p><p><b> 3 分析和設(shè)計(jì)</b></p&
11、gt;<p> 3.1 系統(tǒng)E-R模型</p><p> 圖3-1 個(gè)人記賬管理系統(tǒng)E-R圖</p><p> 3.2 表空間及表的設(shè)計(jì)</p><p> -- Create table</p><p> create table BANK_INCOME(</p><p> IN_ID
12、 NUMBER not null,</p><p> IN_NAME VARCHAR2(50),</p><p> IN_DATE VARCHAR2(50),</p><p> IN_MONEY NUMBER(10,2),</p><p> IN_COMMENT VARCHAR2(500)</p>
13、<p><b> )</b></p><p> tablespace USERS</p><p> pctfree 10</p><p> initrans 1</p><p> maxtrans 255</p><p><b> storage</b>
14、;</p><p><b> (</b></p><p> initial 64K</p><p> minextents 1</p><p> maxextents unlimited</p><p><b> );</b></p><p>
15、; -- Create/Recreate primary, unique and foreign key constraints </p><p> alter table BANK_INCOME</p><p> add constraint PK_IN_ID primary key (IN_ID)</p><p> using index </p&
16、gt;<p> tablespace USERS</p><p> pctfree 10</p><p> initrans 2</p><p> maxtrans 255</p><p><b> storage</b></p><p><b> (</
17、b></p><p> initial 64K</p><p> minextents 1</p><p> maxextents unlimited</p><p><b> );</b></p><p> -- Create table</p><p>
18、 create table BANK_OUT</p><p><b> (</b></p><p> OUT_ID NUMBER not null,</p><p> OUT_NAME VARCHAR2(50),</p><p> OUT_DATE VARCHAR2(50),</p&
19、gt;<p> OUT_MONEY NUMBER(10,2),</p><p> OUT_COMMENT VARCHAR2(500)</p><p><b> )</b></p><p> tablespace USERS</p><p> pctfree 10</p><
20、p> initrans 1</p><p> maxtrans 255</p><p><b> storage</b></p><p><b> (</b></p><p> initial 64K</p><p> minextents 1</p&
21、gt;<p> maxextents unlimited</p><p><b> );</b></p><p> -- Create/Recreate primary, unique and foreign key constraints </p><p> alter table BANK_OUT</p>
22、<p> add primary key (OUT_ID)</p><p> using index </p><p> tablespace USERS</p><p> pctfree 10</p><p> initrans 2</p><p> maxtrans 255</p>
23、;<p><b> storage</b></p><p><b> (</b></p><p> initial 64K</p><p> minextents 1</p><p> maxextents unlimited</p><p><
24、b> );</b></p><p><b> 圖3-2 收入表</b></p><p><b> 圖3-3 支出表</b></p><p><b> 3.3 視圖設(shè)計(jì)</b></p><p><b> 圖3-4 收入視圖</b&g
25、t;</p><p><b> 圖3-5 支出視圖</b></p><p> 3.4 存儲(chǔ)過程、函數(shù)、包的設(shè)計(jì)</p><p><b> 圖3-6 存儲(chǔ)過程</b></p><p><b> 圖3-7包的設(shè)計(jì)</b></p><p><b&
26、gt; 3.5 觸發(fā)器設(shè)計(jì)</b></p><p><b> (1)收入觸發(fā)器</b></p><p> create or replace trigger tri_auto_income_id</p><p> before insert on bank_income </p><p> for
27、 each row</p><p><b> declare</b></p><p> -- local variables here</p><p><b> begin</b></p><p> select seq_income_id.nextval into:new.in_id fr
28、om dual;</p><p> end tri_auto_income_id;</p><p><b> (2)支出觸發(fā)器</b></p><p> create or replace trigger TRI_AUTO_OUT_ID</p><p> before insert on bank_out &l
29、t;/p><p> for each row</p><p><b> declare</b></p><p> -- local variables here</p><p><b> begin</b></p><p> select seq_out_id.next
30、val into:new.out_id from dual;</p><p> end TRI_AUTO_OUT_ID;</p><p> 3.6 角色、用戶、權(quán)限設(shè)計(jì)</p><p> -- Create the role </p><p> create role ROLE1;</p><p><b&
31、gt; --給角色授權(quán)</b></p><p> grant select,update,insert on bank_income to role1 </p><p> grant select,update,insert on bank_out to role1</p><p> -- Create the user </p>
32、<p> create user huanghua</p><p> identified by "123456"</p><p> default tablespace SYSTEM</p><p> temporary tablespace TEMP </p><p> profile DEFAUL
33、T;</p><p> grant select,update,insert on bank_income to huanghua with grant option</p><p> 3.7 備份方案設(shè)計(jì)</p><p> (1)啟動(dòng)SQL*plus,以SYSDBA身份登錄數(shù)據(jù)庫(kù)</p><p> (2)查詢當(dāng)前數(shù)據(jù)庫(kù)所有數(shù)據(jù)文件、
34、控制文件、聯(lián)機(jī)重做文件的位置</p><p> SQL>select file_name from dba_data_files;</p><p> SQL>SELECT member FROM v$logfile;</p><p> SQL>SELECT value FROM v$parameter WHERE name=’control_
35、files’;</p><p><b> (3)關(guān)閉數(shù)據(jù)庫(kù)</b></p><p> SQL>SHUTDOWN IMMEDIATE</p><p> (4)復(fù)制所有數(shù)據(jù)文件、聯(lián)機(jī)重做文件以及控制文件到備份磁盤可以直接在操作系統(tǒng)中使用復(fù)制、粘貼方式進(jìn)行</p><p> (5)重新啟動(dòng)數(shù)據(jù)庫(kù)</p>
36、;<p> SQL>STARTUP</p><p><b> 4 課程設(shè)計(jì)總結(jié)</b></p><p> 4.1運(yùn)行結(jié)果如下圖所示:</p><p> 圖4-1 個(gè)人記賬管理界面</p><p> 圖4-2 收入記錄界面</p><p> 圖4-3支出記錄界面<
37、;/p><p> 圖4-4 查詢收入支出界面</p><p><b> 圖4-5 報(bào)表界面</b></p><p><b> 4.2、設(shè)計(jì)總結(jié)</b></p><p> 這次我們的課程設(shè)計(jì)題目是個(gè)人記賬管理系統(tǒng)。通過此次課程設(shè)計(jì),掌握到了數(shù)據(jù)庫(kù)系統(tǒng)的開發(fā)方法。同時(shí)也加深了對(duì)剛剛學(xué)習(xí)的JAVA的印
38、象。整個(gè)代碼在寫的過程中出現(xiàn)了很多問題。有的實(shí)在解決不了的問題,就去問教我們JAVA的柳小文老師,老師也非常樂意幫助我解決一些困難。有的時(shí)候不懂的問題就去上網(wǎng)搜索答案,或者自己去看書。學(xué)習(xí)需要自主,對(duì)這一點(diǎn)我頗有感觸。</p><p> 此次課程設(shè)計(jì)結(jié)束之后,我還意猶未盡,因?yàn)閺闹懈杏X到了寫代碼的趣味。于是,我就開始想方設(shè)法找點(diǎn)小的應(yīng)用程序去寫。因?yàn)檫@樣的學(xué)習(xí)方法是最快也是最有效的方式。比老師上課講要好的多。而
39、且大學(xué)生也應(yīng)該培養(yǎng)自己的動(dòng)手能力。而動(dòng)手能力只能來自于自己從頭到尾的去寫一個(gè)不大的應(yīng)用程序。了解整個(gè)創(chuàng)作的一個(gè)大體思路,在寫的過程中還要不斷地去請(qǐng)教我們的老師。因?yàn)樗麄儗?duì)實(shí)際應(yīng)用程序的把握比我們要強(qiáng)的多。</p><p> 當(dāng)然,學(xué)無止境,不能因?yàn)檫@么一點(diǎn)小的成就就止步不前。前路很漫長(zhǎng),但我相信只要自己肯用心去學(xué)習(xí),Nothing is impossible!</p><p><b
40、> 參考文獻(xiàn)</b></p><p> [1]孫風(fēng)棟,劉蕾等.Oracle 10g數(shù)據(jù)庫(kù)基礎(chǔ)教程[M].北京:電子工業(yè)出版社,2012.10.</p><p> [2]王珊,薩師煊.數(shù)據(jù)庫(kù)系統(tǒng)概論[M]北京:高等教育出版社,2006.5.</p><p> [3]Java Programming Java程序設(shè)計(jì)[M]北京:清華大學(xué)出版社,
41、2010.1.</p><p><b> 致 謝</b></p><p> 感謝我們的指導(dǎo)老師xx老師,謝謝她在我們的課程設(shè)計(jì)過程中提出了指導(dǎo)性的方案和架構(gòu),并指引我們閱讀相關(guān)的資料和書籍,使我們?cè)诓皇煜さ念I(lǐng)域中仍能迅速掌握新的方法和技術(shù)。</p><p> 同時(shí)也感謝校領(lǐng)導(dǎo)給我們這次難得的鍛煉機(jī)會(huì),讓我們能更好的理解和實(shí)踐Oracle
42、數(shù)據(jù)庫(kù),讓我們對(duì)數(shù)據(jù)庫(kù)有了更深刻的認(rèn)知,對(duì)已學(xué)知識(shí)有了更進(jìn)一步的鞏固。</p><p> 總之,通過這次課程設(shè)計(jì),我獲益良多。</p><p><b> 附 錄</b></p><p><b> 主要代碼:</b></p><p> package com.sxt.bank.dao;<
43、/p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.Statement;</p><p><b> /**</b></p><p><b&
44、gt; * 數(shù)據(jù)庫(kù)工具類</b></p><p> * @author Administrator</p><p><b> *</b></p><p><b> */</b></p><p> public class DBUtil {</p><p>
45、;<b> /**</b></p><p> * 專用于取得數(shù)據(jù)庫(kù)的連接</p><p><b> * @return</b></p><p><b> */</b></p><p> public static Connection getConn(){</p
46、><p> Connection conn=null;</p><p><b> try {</b></p><p><b> //加載驅(qū)動(dòng)</b></p><p> Class.forName("oracle.jdbc.driver.OracleDriver");</
47、p><p> String url="jdbc:oracle:thin:@172.19.95.36:1521:orcl";</p><p><b> //取得連接</b></p><p> conn=DriverManager.getConnection(url, "scott", "tige
48、r");</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> return conn;</p><p><b> }</b>&
49、lt;/p><p><b> /**</b></p><p><b> * 專用于關(guān)閉連接</b></p><p> * @param conn</p><p> * @param stat</p><p><b> */</b></p>
50、;<p> public static void closeConn(Connection conn,Statement stat){</p><p><b> try {</b></p><p> stat.close();</p><p> conn.close();</p><p> } c
51、atch (Exception e2) {</p><p> e2.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b
52、> 收入數(shù)據(jù)處理代碼:</b></p><p> package com.sxt.bank.dao;</p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.Prepa
53、redStatement;</p><p> import com.sxt.bank.entity.InCome;</p><p><b> /**</b></p><p><b> * 數(shù)據(jù)處理</b></p><p> * @author Administrator</p>
54、<p><b> *</b></p><p><b> */</b></p><p> public class IncomeDao {</p><p><b> /**</b></p><p> * 用于保存收入項(xiàng)到數(shù)據(jù)庫(kù)</p><
55、p> * @param income</p><p><b> */</b></p><p> public void saveIncome(InCome income){</p><p> Connection conn=null;</p><p> PreparedStatement stat=nul
56、l;</p><p><b> try {</b></p><p> conn=DBUtil.getConn();</p><p> //得到預(yù)編譯執(zhí)行器</p><p> stat=conn.prepareStatement("insert into bank_income(in_name,in_da
57、te,in_money,in_comment) values(?,?,?,?)");</p><p><b> //設(shè)置參數(shù)</b></p><p> //stat.setInt(1,2);</p><p> stat.setString(1, income.getInName());</p><p>
58、 stat.setString(2, income.getInDate());</p><p> stat.setFloat(3, income.getMoney());</p><p> stat.setString(4, income.getComment());</p><p><b> //執(zhí)行</b></p>&l
59、t;p> stat.execute();</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p> DBUtil.closeConn(conn, stat);<
60、/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 支出數(shù)據(jù)處理代碼:</b></p><p> package com.sxt.bank.
61、dao;</p><p> import java.sql.Connection;</p><p> import java.sql.DriverManager;</p><p> import java.sql.PreparedStatement;</p><p> import com.sxt.bank.entity.Out;&l
62、t;/p><p><b> /**</b></p><p><b> * 支出的數(shù)據(jù)處理</b></p><p> * @author Administrator</p><p><b> *</b></p><p><b> */<
63、;/b></p><p> public class OutDao {</p><p><b> /**</b></p><p> * 用于保存支出項(xiàng)到數(shù)據(jù)庫(kù)</p><p> * @param income</p><p><b> */</b></p
64、><p> public void saveOutcome(Out out){</p><p> Connection conn=null;</p><p> PreparedStatement stat=null;</p><p><b> try {</b></p><p><b&g
65、t; //加載驅(qū)動(dòng)</b></p><p> Class.forName("oracle.jdbc.driver.OracleDriver");</p><p> String url="jdbc:oracle:thin:@172.19.95.36:1521:orcl";</p><p><b>
66、 //取得連接</b></p><p> conn=DriverManager.getConnection(url, "scott", "tiger");</p><p> //得到預(yù)編譯執(zhí)行器</p><p> stat=conn.prepareStatement("insert into ban
67、k_out(out_name,out_date,out_money,out_comment) values(?,?,?,?)");</p><p><b> //設(shè)置參數(shù)</b></p><p> stat.setString(1,out.getOutName());</p><p> stat.setString(2, out
68、.getOutDate());</p><p> stat.setFloat(3, out.getMoney());</p><p> stat.setString(4, out.getComment());</p><p><b> //執(zhí)行</b></p><p> stat.execute();</p
69、><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p><b> try {</b></p><p> stat.close();<
70、;/p><p> conn.close();</p><p> } catch (Exception e2) {</p><p> e2.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p>
71、<p><b> }</b></p><p><b> }</b></p><p><b> 收入支出查詢代碼:</b></p><p> package com.sxt.bank.dao;</p><p> import java.sql.Connec
72、tion;</p><p> import java.sql.PreparedStatement;</p><p> import java.sql.ResultSet;</p><p> import java.util.ArrayList;</p><p> import com.sxt.bank.entity.InCome;&l
73、t;/p><p> import com.sxt.bank.entity.Out;</p><p><b> /**</b></p><p><b> * 收入支出查詢</b></p><p> * @author Administrator</p><p><b&
74、gt; *</b></p><p><b> */</b></p><p> public class QueryDao {</p><p><b> /**</b></p><p> * 取得數(shù)據(jù)的記錄,并封裝成集合</p><p><b>
75、 * @return</b></p><p><b> */</b></p><p> public ArrayList getInList(){</p><p> Connection conn=null;</p><p> PreparedStatement stat=null;</p&g
76、t;<p> ResultSet rs=null;</p><p> //新建一個(gè)集合用來裝out</p><p> ArrayList<InCome> inList=new ArrayList<InCome>();</p><p><b> try {</b></p><p&g
77、t;<b> //得到連接</b></p><p> conn=DBUtil.getConn();</p><p> //SQL語(yǔ)句執(zhí)行器</p><p> stat=conn.prepareStatement("select * from bank_income");</p><p> /
78、/執(zhí)行SQL查詢,得到結(jié)果集</p><p> rs=stat.executeQuery();</p><p> while(rs.next()){ </p><p> //從記錄中取值 參數(shù)類型 字段名</p><p> String inName=rs.getString("in_
79、name");</p><p> String inDate=rs.getString("in_date");</p><p> float money=rs.getFloat("in_money");</p><p> String comment=rs.getString("in_comment&
80、quot;);</p><p><b> //封裝成對(duì)象</b></p><p> InCome in=new InCome(inName, inDate, money, comment);</p><p> //將對(duì)象裝載到集合中</p><p> inList.add(in);</p><
81、p><b> }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }finally{</b></p><p> DBUtil.closeConn(conn, stat);&
82、lt;/p><p><b> }</b></p><p><b> //返回</b></p><p> return inList;</p><p><b> }</b></p><p><b> /**</b></p&
83、gt;<p> * 取得數(shù)據(jù)的記錄,并封裝成集合</p><p><b> * @return</b></p><p><b> */</b></p><p> public ArrayList getOutList(){</p><p> Connection conn=n
84、ull;</p><p> PreparedStatement stat=null;</p><p> ResultSet rs=null;</p><p> //新建一個(gè)集合用來裝out</p><p> ArrayList<Out> outList=new ArrayList<Out>();</p&g
85、t;<p><b> try {</b></p><p><b> //得到連接</b></p><p> conn=DBUtil.getConn();</p><p> //SQL語(yǔ)句執(zhí)行器</p><p> stat=conn.prepareStatement("
86、;select * from bank_out");</p><p> //執(zhí)行SQL查詢,得到結(jié)果集</p><p> rs=stat.executeQuery();</p><p> while(rs.next()){ </p><p> //從記錄中取值 參數(shù)類型 字段名<
87、/p><p> String outName=rs.getString("out_name");</p><p> String outDate=rs.getString("out_date");</p><p> float money=rs.getFloat("out_money");</p&g
88、t;<p> String comment=rs.getString("out_comment");</p><p><b> //封裝成對(duì)象</b></p><p> Out out=new Out(outName, outDate, money, comment);</p><p> //將對(duì)象裝載
89、到集合中</p><p> outList.add(out);</p><p><b> }</b></p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p><b> }finally{<
90、;/b></p><p> DBUtil.closeConn(conn, stat);</p><p><b> }</b></p><p><b> //返回</b></p><p> return outList;</p><p><b> }&
91、lt;/b></p><p><b> }</b></p><p><b> 報(bào)表代碼:</b></p><p> package com.sxt.bank.view;</p><p> import java.awt.EventQueue;</p><p>
92、 import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p> import java.awt.event.MouseAdapter;</p><p> import java.awt.event.MouseEvent;</p>
93、<p> import java.awt.event.WindowAdapter;</p><p> import java.awt.event.WindowEvent;</p><p> import java.util.ArrayList;</p><p> import javax.swing.ImageIcon;</p>&
94、lt;p> import javax.swing.JButton;</p><p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p><p> import javax.swing.JPanel;</p><p> import javax.
95、swing.JScrollPane;</p><p> import javax.swing.JTable;</p><p> import javax.swing.JTextField;</p><p> import javax.swing.border.EmptyBorder;</p><p> import javax.swi
96、ng.table.DefaultTableModel;</p><p> import com.sxt.bank.dao.QueryDao;</p><p> import com.sxt.bank.entity.InCome;</p><p> import com.sxt.bank.entity.Out;</p><p> imp
97、ort com.sxt.bank.util.DatePanel;</p><p> public class reportFrame extends JFrame implements ActionListener {</p><p> private JPanel contentPane;</p><p> private JTextField textf;
98、</p><p> private JTextField textl;</p><p> private JTable table;</p><p><b> /**</b></p><p> * Launch the application.</p><p><b> */&
99、lt;/b></p><p> public static void main(String[] args) {</p><p> EventQueue.invokeLater(new Runnable() {</p><p> public void run() {</p><p><b> try {</b&
100、gt;</p><p> reportFrame frame = new reportFrame();</p><p> frame.setVisible(true);</p><p> } catch (Exception e) {</p><p> e.printStackTrace();</p><p>
101、<b> }</b></p><p><b> }</b></p><p><b> });</b></p><p><b> }</b></p><p><b> /**</b></p><p>
102、 * Create the frame.</p><p><b> */</b></p><p> public reportFrame() {</p><p> setTitle("\u62A5\u8868");</p><p> setResizable(false);</p>
103、<p> this.addWindowListener(new WindowAdapter() {</p><p><b> @Override</b></p><p> public void windowClosing(WindowEvent arg0) {</p><p> //只銷毀本窗口,不退出慮擬機(jī)</p
104、><p> reportFrame.this.dispose();</p><p><b> }</b></p><p><b> });</b></p><p> setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);</p>
105、<p> this.setIconImage(new ImageIcon("image/person.JPG").getImage());</p><p> setBounds(100, 100, 441, 342);</p><p> contentPane = new JPanel();</p><p> contentPa
106、ne.setBorder(new EmptyBorder(5, 5, 5, 5));</p><p> setContentPane(contentPane);</p><p> //設(shè)置背景===============</p><p> ImageIcon img = new ImageIcon("image/chao.jpg");&
107、lt;/p><p> final JLabel lblImg = new JLabel(img);</p><p> this.getLayeredPane().add(lblImg,new Integer(Integer.MIN_VALUE));</p><p> lblImg.setBounds(0, lblImg.getHeight(), 457, 542)
108、;</p><p> ((JPanel)getContentPane()).setOpaque(false); </p><p> //======================</p><p> contentPane.setLayout(null);</p><p> JLabel repo = new JLabel("
109、;\u62A5\u8868\u8BB0\u5F55");</p><p> repo.setBounds(10, 25, 61, 15);</p><p> contentPane.add(repo);</p><p> JLabel lblNewLabel = new JLabel("\u65E5\u671F\uFF1A");&
110、lt;/p><p> lblNewLabel.setBounds(81, 25, 39, 15);</p><p> contentPane.add(lblNewLabel);</p><p> textf = new JTextField();</p><p> textf.setBounds(118, 22, 73, 21);<
111、/p><p> contentPane.add(textf);</p><p> textf.setColumns(10);</p><p> JLabel label = new JLabel("\u5230");</p><p> label.setBounds(224, 25, 21, 15);</p>
112、;<p> contentPane.add(label);</p><p> textl = new JTextField();</p><p> textl.setColumns(10);</p><p> textl.setBounds(241, 22, 72, 21);</p><p> contentPane.
113、add(textl);</p><p> JButton btnDate1 = new JButton("...");</p><p> btnDate1.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b></p><p&
114、gt; public void mouseClicked(MouseEvent event) {</p><p> //彈出日期框 父窗口 模式 輸入框 x y </p><p> new DatePanel(reportFrame.this,true,textf,event.getXOnScreen(),event.getYO
115、nScreen());</p><p><b> }</b></p><p><b> });</b></p><p> btnDate1.setBounds(195, 22, 21, 23);</p><p> contentPane.add(btnDate1);</p>&
116、lt;p> JButton btnDate2 = new JButton("...");</p><p> btnDate2.addMouseListener(new MouseAdapter() {</p><p><b> @Override</b></p><p> public void mouseCl
117、icked(MouseEvent event) {</p><p> //彈出日期框 父窗口 模式 輸入框 x y </p><p> new DatePanel(reportFrame.this,true,textl,event.getXOnScreen(),event.getYOnScreen());</p>&
118、lt;p><b> }</b></p><p><b> });</b></p><p> btnDate2.setBounds(316, 21, 21, 23);</p><p> contentPane.add(btnDate2);</p><p> JScrollPane sc
119、rollPane = new JScrollPane();</p><p> scrollPane.setBounds(10, 56, 413, 214);</p><p> contentPane.add(scrollPane);</p><p><b> //建表頭</b></p><p> String[]
120、 header={"收入/支出項(xiàng)","日期","金額","備注"};</p><p><b> //建數(shù)據(jù)模型</b></p><p> dtm=new DefaultTableModel(null,header);</p><p> table = new
121、JTable(dtm);</p><p> scrollPane.setViewportView(table);</p><p> JButton inquiry = new JButton("\u67E5\u8BE2");</p><p> inquiry.addActionListener(this);</p><p
122、> inquiry.setActionCommand("query");</p><p> inquiry.setBounds(347, 21, 76, 23);</p><p> contentPane.add(inquiry);</p><p> JLabel outlabel = new JLabel("\u652F
123、\u51FA\u5408\u8BA1\uFF1A");</p><p> outlabel.setBounds(10, 285, 72, 15);</p><p> contentPane.add(outlabel);</p><p> JLabel label_1 = new JLabel("\u6536\u5165\u5408\u8BA
124、1\uFF1A");</p><p> label_1.setBounds(163, 285, 74, 15);</p><p> contentPane.add(label_1);</p><p> JLabel label_2 = new JLabel("\u4F59\u989D\uFF1A");</p><
125、;p> label_2.setBounds(313, 285, 44, 15);</p><p> contentPane.add(label_2);</p><p> textoutsum = new JTextField();</p><p> textoutsum.setBounds(87, 282, 66, 21);</p>&l
126、t;p> contentPane.add(textoutsum);</p><p> textoutsum.setColumns(10);</p><p> textinsum = new JTextField();</p><p> textinsum.setColumns(10);</p><p> textinsum.s
127、etBounds(237, 282, 66, 21);</p><p> contentPane.add(textinsum);</p><p> textyu = new JTextField();</p><p> textyu.setColumns(10);</p><p> textyu.setBounds(357, 282,
128、 66, 21);</p><p> contentPane.add(textyu);</p><p><b> }</b></p><p> static double insum=0,outsum=0,remanent=0;</p><p> DefaultTableModel dtm=null;</p
129、><p> private JTextField textoutsum;</p><p> private JTextField textinsum;</p><p> private JTextField textyu;</p><p> public void actionPerformed(ActionEvent event) {&
130、lt;/p><p> if(event.getActionCommand().equals("exit")){</p><p> this.dispose();</p><p> }else if(event.getActionCommand().equals("query")){</p><p>
131、 //去數(shù)據(jù)庫(kù)查詢 得到數(shù)據(jù)</p><p> QueryDao queryDao=new QueryDao();</p><p><b> //取得集合</b></p><p> ArrayList<InCome> inList=queryDao.getInList();</p><p> Arra
132、yList<Out> outList=queryDao.getOutList();</p><p> //清空表格的歷史數(shù)據(jù)</p><p> dtm.setRowCount(0);</p><p> insum=outsum=0;</p><p><b> //顯示在表格中</b></p>
133、;<p> for(InCome in:inList){</p><p> //將數(shù)據(jù)加載到表格模型中out</p><p> dtm.addRow(new Object[]{in.getInName(),in.getInDate(),in.getMoney(),in.getComment()});</p><p> insum+=in.get
134、Money();</p><p> textinsum.setText(String.valueOf(insum));</p><p><b> }</b></p><p><b> //顯示在表格中</b></p><p> for(Out out:outList){</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告-個(gè)人記賬系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---小型記賬系統(tǒng)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)---個(gè)人事物管理數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- java數(shù)據(jù)庫(kù)課程設(shè)計(jì) 圖書館管理系統(tǒng)
- java數(shù)據(jù)庫(kù)課程設(shè)計(jì)編程詞典系統(tǒng)
- java數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--基于java的酒店管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--數(shù)據(jù)庫(kù)設(shè)計(jì)—公司管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---機(jī)房管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---圖書管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--個(gè)人銀行賬戶管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--工資管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-酒店管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)---教室管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--bbs系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)論文---汽車銷售管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--超市會(huì)員管理系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)---圖書管理系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-學(xué)生管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-薪資管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論