Java課程設(shè)計報告學(xué)生管理系統(tǒng).doc
《Java課程設(shè)計報告學(xué)生管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關(guān)《Java課程設(shè)計報告學(xué)生管理系統(tǒng).doc(41頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 JAVA程序設(shè)計 課程設(shè)計報告課 題: 學(xué)生信息管理系統(tǒng) 姓 名: 學(xué) 號: 201217020113 設(shè)計時間:2014.6.232014.6.27評閱意見:評定成績:指導(dǎo)老師簽名: 年 月 日 目 錄1.系統(tǒng)描述.3 1.1需要實現(xiàn)的功能.3 1.2 設(shè)計的目的.32.分析與設(shè)計.4 2.1功能模塊劃分.4 2.2 數(shù)據(jù)庫結(jié)構(gòu)描述.4 2.3系統(tǒng)詳細(xì)設(shè)計文檔.5 2.4 各個模塊實現(xiàn)方法描述.9 2.5 測試數(shù)據(jù)及期望結(jié)果.93.系統(tǒng)測試.124.總結(jié)或心得體會.185.參考文獻(xiàn).196.附錄.191.系統(tǒng)描述1.1需要實現(xiàn)的功能(1)錄入學(xué)生基本信息的功能 學(xué)生基本信息主要包括:學(xué)號、
2、姓名、性別、年齡、出生地、專業(yè)、班級、總學(xué)分,在插入時,如果數(shù)據(jù)庫則已經(jīng)存在該學(xué)號,則不能再插入該學(xué)號。(2)修改學(xué)生基本信息的功能在管理員模式下,只要在表格中選中某個學(xué)生,就可以對該學(xué)生信息進(jìn)行修改。(3)查詢學(xué)生基本信息的功能可使用 “姓名”對已存有的學(xué)生資料進(jìn)行查詢。(4)刪除學(xué)生基本信息的功能 在管理員模式下,只要選擇表格中的某個學(xué)生,就可以刪除該學(xué)生。(5)用戶登陸用不同的登錄權(quán)限可以進(jìn)入不同的后臺界面,從而實現(xiàn)權(quán)限操作。(6)用戶登陸信息設(shè)置可以修改用戶登陸密碼1.2 設(shè)計的目的本程序用于用戶對少量學(xué)生信息進(jìn)行簡單的管理,本程序針對于對安全系數(shù)要求不高,操作不是很復(fù)雜的小型客戶開發(fā)
3、。本程序的管理員可以實現(xiàn)對學(xué)生信息的錄入、查詢、修改、刪除等操作,同時支持查看所有學(xué)生信息,學(xué)生只能查詢自己的信息。程序功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。同時,本程序?qū)ο到y(tǒng)要求配置較低,運行速度快,而卻對數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的access數(shù)據(jù)庫(.accdb)進(jìn)行數(shù)據(jù)存儲,該數(shù)據(jù)庫可實現(xiàn)關(guān)系較為簡單的數(shù)據(jù)管理。2.分析與設(shè)計: 2.1功能模塊劃分學(xué)生信息管理系統(tǒng)瀏覽學(xué)生信息查詢學(xué)生信息添加學(xué)生信息修改學(xué)生信息刪除學(xué)生信息普通學(xué)生(用戶)模塊班委(管理員)模塊瀏覽學(xué)生信息查詢學(xué)生信息學(xué)生管理登陸管理修改登陸密碼顯示登陸
4、用戶 圖1 功能模塊圖2.2數(shù)據(jù)庫結(jié)構(gòu)描述 (1)數(shù)據(jù)庫E-R模型 圖2 學(xué)生局部E-R圖 圖3 登陸用戶局部E-R圖(2)數(shù)據(jù)庫關(guān)系模型二維 表1 學(xué)生表(student)字段數(shù)據(jù)類型說明stuIdnvarchar(30)學(xué)號stuNamenvarchar(30)姓名stuSexnvarchar(30)性別stuAgeint年齡stuJgnvarchar(30)籍貫stuZynvarchar(30)專業(yè)classIdnvarchar(30)班號stuSoursenumeric(5,2)總學(xué)分 表2 登陸權(quán)限表(login)字段數(shù)據(jù)類型說明userIdnvarchar(30)用戶名(賬號),即
5、登陸Idpasswordnvarchar(30)登陸密碼positionnvarchar(30)職位,如班委,普通學(xué)生 (3)數(shù)據(jù)流圖進(jìn)度條(閃屏)用戶登陸登陸驗證falsetrue班委(管理員)界面普通學(xué)生界面查詢添加修改刪除查詢顯示班委(管理員員 )普通學(xué)生(用戶)退出退出系統(tǒng)結(jié)束結(jié)束退出系統(tǒng)truefalsefalsetrue修改用戶登陸密碼顯示登陸用戶信息 圖4 數(shù)據(jù)流圖2.3系統(tǒng)詳細(xì)設(shè)計文檔 表3 包以及包所包含的類包名(package)所包含的類說明com.sqlConnectionSqlConn.java用于連接數(shù)據(jù)庫com.ToolsMyFont.java用于設(shè)置窗體各組件的字
6、體com.ViewIndex.java使用進(jìn)度條與線程結(jié)合實現(xiàn)閃屏,初始化進(jìn)入登陸界面Login.java登陸界面,管理員與用戶登陸ManageView.java管理員界面,可進(jìn)行所有操作StuMainView.java普通學(xué)生(用戶)界面,只能進(jìn)行部分操作StuQuery.java學(xué)生信息查詢模塊AddStu.java添加學(xué)生信息模塊UpdateStu.java更新學(xué)生信息模塊TableModel.java表數(shù)據(jù)更新模型,學(xué)于更新并通過表來顯示信息LoginModel.java用戶登陸驗證模型PurViewModel.java用戶權(quán)限設(shè)置界面UpdateLogin.java用戶賬戶修改界面
7、表4 SqlConn類類名類的成員屬性與方法說明SqlConn.javaConnection ct得到與數(shù)據(jù)庫的連接PreparedStatement ps實現(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫ResultSet rs獲得數(shù)據(jù)庫返回的記錄集public ResultSet sqlQuery(String sql)實現(xiàn)查詢功能的方法public void sqlUpdate(String sql)實現(xiàn)添加,修改功能 的方法public void sqlDelete(String sql)實現(xiàn)刪除學(xué)生記錄的方法public void closeSqlConn()實現(xiàn)關(guān)閉數(shù)據(jù)庫連接的功能 表5 Index類類名
8、類的成員屬性與方法說明Index.javaJProgressBar jpb定義進(jìn)度條JLabel jl1用于在窗體的北部放一張圖片,南部是進(jìn)度條int width,height用于獲取顯示屏分辨率大小,以便設(shè)置窗口的默認(rèn)位置public Index()初始化窗口的相關(guān)組件public void run()進(jìn)度條線程的run方法,用于設(shè)置線程的屬性int progressValue定義一個數(shù)組,存放進(jìn)度條顯示時需要的數(shù)據(jù) 表6 Login類 類名類的成員屬性與方法說明Login.javaJLabel jl1,jl2,jl3定義三個標(biāo)簽組件JTextField jtf1定義一個用戶輸入賬號的文本框
9、JPasswordField jpf1密碼輸入框JButton jb1,jb2提交和清除按鈕int width,height用于設(shè)置窗口初始位置的變量,即獲取顯示器的大小ResultSet rs用于接收從數(shù)據(jù)庫返回來的記錄集LoginModel loginModel自定義一個模型,把值到登陸驗證模型public Login()構(gòu)造方法,用于初始化登陸窗口的相關(guān)組件class BackImage extends JPanel創(chuàng)建一個內(nèi)部類,并繼承JPanle,用于畫背景圖片 2.4各個模塊實現(xiàn)方法描述 sqlConnection是連接數(shù)據(jù)庫??蓪崿F(xiàn)發(fā)送SQL語句給數(shù)據(jù)庫,獲得數(shù)據(jù)庫返回的記錄集,
10、實現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,關(guān)閉數(shù)據(jù)庫連接等功能。Myfont是設(shè)置窗體各組件的字體。Index是使用進(jìn)度條與線程結(jié)合實現(xiàn)閃屏,初始化進(jìn)入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進(jìn)去后可分別按自己的權(quán)限操作。2.5 測試數(shù)據(jù)及期望結(jié)果在登入窗口可以分別登入管理員和用戶的賬號及密碼,會進(jìn)入權(quán)限不同的頁面,管理員可以實現(xiàn)查詢、添加、修改、刪除學(xué)生記錄,還可以查詢,修改、刪除管理員表格。而學(xué)生只能查詢學(xué)生記錄。例如: 圖1登入管理員 圖2查詢?nèi)啃畔?圖3查詢個人信息 圖4添加學(xué)生信息 圖5修改學(xué)生信息 圖6修改學(xué)生信息 圖7查詢肖林衛(wèi)婕
11、的成績3. 系統(tǒng)測試 圖8系統(tǒng)啟動界面圖9 用戶登陸界面 圖10 班委(管理員)界面,即具有完全權(quán)限的用戶后臺界面 圖11 班委(管理員)界面子菜單項顯示 圖12 普通用戶(學(xué)生)界面子菜單項顯示圖13學(xué)生信息查詢結(jié)果顯示圖14 添加學(xué)生信息界面圖15 修改學(xué)生信息界面 圖16 顯示所有學(xué)生信息 圖17當(dāng)沒有選中一行的時候,不能修改和刪除,并彈出提示警告框 圖18 刪除文件時的確認(rèn)對話框(當(dāng)點擊確認(rèn)時才會刪除,點擊取消,則返回主界面) 圖19 顯示所有登陸用戶信息 圖20 修改用戶登陸密碼,選中某個用戶進(jìn)行修改 圖21 關(guān)閉用戶記錄,即不顯示所有用戶信息 圖22 關(guān)閉學(xué)生記錄 圖23 退出系統(tǒng)
12、確認(rèn)對話框,只有確認(rèn)時才會退出系統(tǒng),否則返加主界面 圖24 普通學(xué)生登陸后的界面(即不能對學(xué)生信息進(jìn)行添加,修改和刪除以及用戶密碼修改,對應(yīng)的這幾項灰色顯示,不可點擊)四、總結(jié)或心得體會1)在寫代碼之前,在大腦里一定要把思路理清楚,不能模模糊糊,一定要把功能圖和流程圖畫出來,然后根據(jù)它去實現(xiàn)每一個功能塊,要多分析,培養(yǎng)一種良好的邏輯思維能力。2)在寫代碼的過程中,一定要采取就近原則,同一個功能,或者對同一個組件的設(shè)置一般要寫在一塊,這樣寫的程序比較清晰,不容易出錯,也便于查找。3)要養(yǎng)成良好的注釋習(xí)慣,一是有利于別人閱讀你的程序,同時也有利于自己以后再看,就能很快的讀懂程序,提高效率。4)把功
13、能模塊化,即把實現(xiàn)相同功能的代碼段封裝成一到一個類或者一個方法中,實現(xiàn)的時候調(diào)用即可,這樣能提高代碼的可讀性5)養(yǎng)成創(chuàng)建包來存放不同功能的類,使系統(tǒng)的結(jié)構(gòu)更加模塊化和規(guī)范化。6)在編寫代碼的時候,一定要邊寫邊調(diào)試,要適時的設(shè)置斷點,或者把某些變量的值輸出到控制臺,通過觀察和分析變量的值,便于判斷問題所在,同時,需要捕獲異常的一定要把異常信息打印出來,便于分析問題。在老師悉心的指導(dǎo)下,我順利地完成了本次課程設(shè)計,并取得了很大的收獲,對以后的軟件開發(fā)奠定了一定的基礎(chǔ)!5、 參考文獻(xiàn)(1)趙海廷.Java語言程序設(shè)計教程.北京:清華大學(xué)出版社.2012(2)孫印杰,劉斌,孫玉強(qiáng).Java編程案例精解
14、.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實例系列叢書.北京:清華大學(xué)出版社,2002(4)楊昭.編著二級Java語言程序設(shè)計教程.北京:中國水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計基礎(chǔ)與上機(jī)指導(dǎo).北京:清華大學(xué)出版社,2006六、附錄(1)功能:連接數(shù)據(jù)庫package com.SqlConnection;import java.sql.*;import com.View.AddStu;public class SqlConn Connection ct=null;PreparedStatement ps=null;ResultSet rs=null;Str
15、ing driver=sun.jdbc.odbc.JdbcOdbcDriver;String dburl=jdbc:odbc:stuSystem;String userName=;String password=;/實現(xiàn)查詢功能的方法public ResultSet sqlQuery(String sql)try /加載驅(qū)動Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql);rs=ps.executeQuery(); catch (Ex
16、ception e) e.printStackTrace();/ TODO: handle exceptionreturn rs;/實現(xiàn)添加,修改功能 的方法public void sqlUpdate(String sql)try /加載驅(qū)動Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql);/執(zhí)行添加,更新操作int i=ps.executeUpdate();/返回一個值,如果為1則表示添加成功。if(i=1)System.out.p
17、rintln(數(shù)據(jù)添加/修改成功!);elseSystem.out.println(數(shù)據(jù)添加/修改失?。?; catch (Exception e) e.printStackTrace();/ TODO: handle exception/實現(xiàn)刪除學(xué)生記錄的方法public void sqlDelete(String sql)try /加載驅(qū)動System.out.println(ok);Class.forName(driver);ct=DriverManager.getConnection(dburl,userName,password);ps=ct.prepareStatement(sql
18、);System.out.println(ok1);/執(zhí)行添加,更新操作int i=ps.executeUpdate();/返回一個值,如果為1則表示刪除成功。if(i=1)System.out.println(數(shù)據(jù)刪除成功!);elseSystem.out.println(數(shù)據(jù)刪除失??!); catch (Exception e) e.printStackTrace();/ TODO: handle exception/實現(xiàn)關(guān)閉數(shù)據(jù)庫連接的功能public void closeSqlConn()try if(rs!=null)rs.close();if(ps!=null)ps.close()
19、;if(ct!=null)ct.close(); catch (Exception e) e.printStackTrace();/ TODO: handle exception(2)功能:這是一個字體包,用于美化窗口的字體package com.Tools;import java.awt.Font;public class MyFont public static Font f1=new Font(宋體,Font.PLAIN,15);public static Font f2=new Font(宋體,Font.PLAIN,13);(3) 功能:這是添加學(xué)生的界面,通過模式對話(即繼承JDia
20、log對話框)來實現(xiàn) package com.View;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.ResultSet;import javax.swing.*;import com.SqlConnection.SqlConn;import com.Tools.MyFont;public class AddStu extends JDialog implements ActionListener /定義添加學(xué)生信息的相關(guān)組件JLa
21、bel jl1,jl2,jl3,jl4,jl5,jl6,jl7,jl8;JTextField jtf1,jtf2,jtf3,jtf4,jtf5,jtf6,jtf7,jtf8;JButton jb1,jb2,jb3;ResultSet rs;SqlConn sqlconn;String No;int stuAge=0;Double stuSourse=0.0;int i=0;/用于判斷到底點擊了添加還是取消,來決定是否執(zhí)行數(shù)據(jù)更新操作public int falg()return i;/這是添加學(xué)生界面的函數(shù)封裝public void addView()jl1=new JLabel(學(xué) 號:);
22、jl1.setBounds(20, 20, 60, 25);jl1.setFont(MyFont.f1);jl2=new JLabel(姓 名:);jl2.setFont(MyFont.f1);jl2.setBounds(250, 20, 60, 25);jl3=new JLabel(性 別:);jl3.setFont(MyFont.f1);jl3.setBounds(20, 60, 60, 25);jl4=new JLabel(年 齡:);jl4.setFont(MyFont.f1);jl4.setBounds(250, 60, 60, 25);jl5=new JLabel(出生地:);jl
23、5.setFont(MyFont.f1);jl5.setBounds(14, 100, 60, 25);jl6=new JLabel(專 業(yè):);jl6.setFont(MyFont.f1);jl6.setBounds(20, 140, 60, 25);jl7=new JLabel(班 級:);jl7.setFont(MyFont.f1);jl7.setBounds(20, 180, 60, 25);jl8=new JLabel(總學(xué)分:);jl8.setFont(MyFont.f1);jl8.setBounds(240, 180, 60, 25);jtf1=new JTextField(20
24、);jtf1.setBounds(70, 20, 130, 25);jtf1.setBorder(BorderFactory.createLoweredBevelBorder();jtf2=new JTextField(20);jtf2.setBounds(300, 20, 130, 25);jtf2.setBorder(BorderFactory.createLoweredBevelBorder();jtf3=new JTextField(10);jtf3.setBounds(70, 60, 60, 25);jtf3.setBorder(BorderFactory.createLowered
25、BevelBorder();jtf4=new JTextField(10);jtf4.setBounds(300, 60, 60, 25);jtf4.setBorder(BorderFactory.createLoweredBevelBorder();jtf5=new JTextField(30);jtf5.setBounds(70, 100, 360, 25);jtf5.setBorder(BorderFactory.createLoweredBevelBorder();jtf6=new JTextField(20);jtf6.setBounds(70, 140, 290, 25);jtf6
26、.setBorder(BorderFactory.createLoweredBevelBorder();jtf7=new JTextField(20);jtf7.setBounds(70, 180, 130, 25);jtf7.setBorder(BorderFactory.createLoweredBevelBorder();jtf8=new JTextField(20);jtf8.setBounds(300, 180, 130, 25);jtf8.setBorder(BorderFactory.createLoweredBevelBorder();jb1=new JButton(添 加);
27、jb1.setFont(MyFont.f1);jb1.setBounds(100, 220, 80, 25);jb1.addActionListener(this);jb2=new JButton(取 消);jb2.setFont(MyFont.f1);jb2.setBounds(280, 220, 80, 25);jb2.addActionListener(this);jb3=new JButton(清 除);jb3.setFont(MyFont.f1);jb3.setBounds(190,220,80,25);jb3.addActionListener(this);this.setLayo
28、ut(null);/把組件添加到窗體this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jtf2);this.add(jl3);this.add(jtf3);this.add(jl4);this.add(jtf4);this.add(jl5);this.add(jtf5);this.add(jl6);this.add(jtf6);this.add(jl7);this.add(jtf7);this.add(jl8);this.add(jtf8);this.add(jb1);this.add(jb2);this.add(jb3);public A
29、ddStu(Frame Main,String title,boolean model)/調(diào)用父類的構(gòu)造方法,實現(xiàn)模式對話super(Main,title,model);/調(diào)用添加學(xué)生信息界面的的方法this.addView();/設(shè)置窗體的屬性this.setSize(465,300);this.getContentPane().setBackground(Color.LIGHT_GRAY);/設(shè)置背景必須是在顯示窗口前面,否則不能顯示出來this.setVisible(true);this.setResizable(false);Overridepublic void actionPerf
30、ormed(ActionEvent e) / TODO Auto-generated method stub/用于判斷輸入的學(xué)號是否存在時,如果存在則返回該學(xué)號,否則返回null,因此在這里,定義一個用于接收該返回的學(xué)號/并設(shè)置該No的初始值為空,否則報錯。String No = null ;/當(dāng)點擊了添加按鈕if(e.getSource()=jb1)/*/獲取文本框的信息 String stuId=jtf1.getText().trim();/判斷,不能讓文本輸入框的值為空if(stuId.equals()JOptionPane.showMessageDialog(this, 請輸入學(xué)號!)
31、;return;/返回到輸入界面,如果沒有return語句,則會回到主界面String stuName=jtf2.getText().trim();if(stuName.equals()JOptionPane.showMessageDialog(this, 請輸入姓名!);return;/返回到輸入界面,如果沒有return語句,則會回到主界面String stuSex=jtf3.getText().trim();if(stuSex.equals()JOptionPane.showMessageDialog(this, 請輸入性別!);return;/返回到輸入界面,如果沒有return語句,
32、則會回到主界面/對于年齡,則需要進(jìn)行兩個判斷,一個是不能為空,另一個必須是int型,下面用異常來判斷輸入的學(xué)生年齡是否是整型數(shù)/*/try stuAge=Integer.parseInt(jtf4.getText().trim();/把從文本框取得的字符串轉(zhuǎn)換成整型,如果拋異常,則輸入的不是整形數(shù) if(stuAge1) JOptionPane.showMessageDialog(this, 年齡必須大于或等于1!); return; catch (Exception e2) /提示輸入的不是整數(shù)JOptionPane.showMessageDialog(this, 請輸入一個整數(shù)的年齡!);
33、/如果拋異常,則返回到添加窗口,后面終止執(zhí)行*/return;/ TODO: handle exception/*/String stuJg=jtf5.getText().trim();if(stuJg.equals()JOptionPane.showMessageDialog(this, 請輸入出生地!);return;/返回到輸入界面,如果沒有return語句,則會回到主界面String stuZy=jtf6.getText().trim();if(stuZy.equals()JOptionPane.showMessageDialog(this, 請輸入專業(yè)!);return;/返回到輸入
34、界面,如果沒有return語句,則會回到主界面String classId=jtf7.getText().trim();if(classId.equals()JOptionPane.showMessageDialog(this, 請輸入班號!);return;/返回到輸入界面,如果沒有return語句,則會回到主界面/*/try stuSourse=Double.parseDouble(jtf8.getText().trim();if(stuSourse=0.0)JOptionPane.showMessageDialog(this, 請輸入總學(xué)分!);return;/返回到輸入界面,如果沒有r
35、eturn語句,則會回到主界面 catch (Exception e2) JOptionPane.showMessageDialog(this, 請輸入一個整數(shù)或小數(shù)的總學(xué)分!);return;/ TODO: handle exception/*/首先先判斷該主鍵是否在數(shù)據(jù)庫中是否存在,其次分別判斷性別是否為“男”或者“女”,年齡是否為數(shù)字,總學(xué)分是否為浮點型或雙精度型String sql=select * from student where stuId=+stuId+;SqlConn sqlconn=new SqlConn();rs=sqlconn.sqlQuery(sql);try wh
36、ile(rs.next()No=rs.getString(1);/看到底是否存在該學(xué)生的學(xué)號,如果存在,則返回該學(xué)號,不存在,則為空。 catch (Exception e2) e2.printStackTrace();/ TODO: handle exceptionif(No=null)if(stuSex.equals(男)|stuSex.equals(女)/調(diào)用數(shù)據(jù)庫連接 sql=insert into student values(+stuId+,+stuName+,+stuSex+,+stuAge+,+stuJg+,+stuZy+,+classId+,+stuSourse+);sqlc
37、onn=new SqlConn();sqlconn.sqlUpdate(sql);this.i=1;/關(guān)閉數(shù)據(jù)庫連接sqlconn.closeSqlConn();this.dispose();else JOptionPane.showMessageDialog(this, 性別應(yīng)該是男或女!);else JOptionPane.showMessageDialog(this, 該學(xué)號已經(jīng)存在,請輸入新的學(xué)號!);/如果點擊了取消按鈕,則關(guān)閉模式對話框else if(e.getSource()=jb2)this.dispose();else if(e.getSource()=jb3)jtf1.se
38、tText();jtf2.setText();jtf3.setText();jtf4.setText();jtf5.setText();jtf6.setText();jtf7.setText();jtf8.setText();(4)功能:實現(xiàn)閃屏界面package com.View;import java.awt.*;import javax.swing.*;public class Index extends JWindow implements Runnable/定義與進(jìn)度條相關(guān)的組件JProgressBar jpb;/定義進(jìn)度條JLabel jl1;/用于在窗體的北部放一張圖片,南部是進(jìn)
39、度條int width,height;/用于獲取顯示屏分辨率大小public static void main(String args)Index index=new Index();/創(chuàng)建index線程Thread t=new Thread(index);/啟動線程t.start();/構(gòu)造函數(shù)public Index()/創(chuàng)建標(biāo)簽,并在標(biāo)簽上放置一張圖片jl1=new JLabel(new ImageIcon(image/index1.gif);/創(chuàng)建進(jìn)度條jpb=new JProgressBar();/設(shè)置進(jìn)度條屬性jpb.setStringPainted(true);/顯示當(dāng)前進(jìn)度值信
40、息jpb.setIndeterminate(false);/確定進(jìn)度條執(zhí)行完成后不來回滾動jpb.setBorderPainted(false);/設(shè)置進(jìn)度條邊框不顯示jpb.setBackground(Color.darkGray);/設(shè)置進(jìn)度條的背景色/添加組件this.add(jl1,BorderLayout.NORTH);this.add(jpb,BorderLayout.SOUTH);/設(shè)置窗體屬性this.setSize(625,359);/設(shè)置窗體顯示的位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height
41、=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-200,height/2-150);/設(shè)置窗口顯示this.setVisible(true);/進(jìn)度條線程的run方法,用于設(shè)置線程的屬性public void run() /定義一個數(shù)組,存放進(jìn)度條顯示時需要的數(shù)據(jù)int progressValue=0,8,35,43,49,56,70,99,100;for(int i=0;iprogressValue.length;i+)try /休眠1秒,再執(zhí)行Thread.sleep(1000); c
42、atch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();jpb.setValue(progressValuei);/取得數(shù)組中的進(jìn)度值/當(dāng)進(jìn)度完成后,執(zhí)行相應(yīng)的操作,如切換到其他的窗口,同時關(guān)閉進(jìn)度條窗口等new Login();/關(guān)閉進(jìn)度條窗口this.dispose();(5) 功能:這是學(xué)生/管理員登陸的窗口,根據(jù)權(quán)限不同進(jìn)入不同的后臺界面package com.View;import com.SqlConnection.SqlConn;import com.Tools.*;im
43、port java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.sql.ResultSet;import javax.imageio.ImageIO;import javax.swing.*;import javax.swing.border.Border;import javax.swing.text.Position;public class Login extends JFrame implements Action
44、Listener/定義登陸窗口需要的組件JLabel jl1,jl2,jl3;JTextField jtf1;JPasswordField jpf1;JButton jb1,jb2;int width,height;/定義用于連接數(shù)據(jù)庫的組件,也就是com.SqlConnection類下的SqlConn方法SqlConn sqlconn;/定義用于傳送SQL語句的變量String sql;/定義一個用于接收登陸驗證返回來的記錄集ResultSet rs;/聲明用于驗證登陸用戶的模型LoginModel loginModel;int flag;public static void main(St
45、ring args)Login login=new Login();public Login()/創(chuàng)建登陸所需的組件jl1=new JLabel(賬 號:);jl1.setFont(MyFont.f1);jl1.setBounds(50,50,60,25);jl2=new JLabel(密 碼:);jl2.setFont(MyFont.f1);jl2.setBounds(50,90,60,25);jtf1=new JTextField(20);jtf1.setBounds(110,50,150,25);/設(shè)置文本框下凹,三維效果jtf1.setBorder(BorderFactory.crea
46、teLoweredBevelBorder();jpf1=new JPasswordField(20);jpf1.setBorder(BorderFactory.createLoweredBevelBorder();jpf1.setBounds(110,90,150,25);jb1=new JButton(登 陸);jb1.setFont(MyFont.f1);jb1.addActionListener(this);jb1.setBounds(95,130,75,25);jb2=new JButton(取消);jb2.setFont(MyFont.f1);jb2.addActionListene
47、r(this);jb2.setBounds(185,130,75,25);/添加到窗體/先設(shè)置窗體的空布局this.setLayout(null);this.add(jl1);this.add(jtf1);this.add(jl2);this.add(jpf1);this.add(jb1);this.add(jb2);/創(chuàng)建一個BackImage對象BackImage bi=new BackImage();/設(shè)定圖片的位置bi.setBounds(0,0,350,250);this.add(bi);this.setSize(350,250);this.setTitle();/設(shè)置窗口在屏幕的初
48、始位置width=Toolkit.getDefaultToolkit().getScreenSize().width;height=Toolkit.getDefaultToolkit().getScreenSize().height;this.setLocation(width/2-180, height/2-180);/設(shè)置窗口不可改變大小this.setResizable(false);/注意:*設(shè)置窗口的背景顏色,由于是繼承Swing包,所以必須先得到窗口的一個面板,然后再通過這個面板去設(shè)置背景色,否則設(shè)置不顯示出來/this.getContentPane().setBackground
49、(Color.gray);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);/創(chuàng)建一個內(nèi)部類,并繼承JPanle,用于畫背景圖片class BackImage extends JPanelImage im;public BackImage()tryim=ImageIO.read(new File(Image/login.gif);catch(Exception e)e.printStackTrace();/要把圖片畫到JPanle,需要重寫一個Paint方法public void paint(Graphics g) /此處的paint中的p是小寫,/如果是大寫,則就是重寫paint方法了,而是一個新的方法了,那么后面的圖片是不會輸出的g.drawImage(im,0,0,350,250,this);
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑施工重大危險源安全管理制度
- 安全培訓(xùn)資料:典型建筑火災(zāi)的防治基本原則與救援技術(shù)
- 企業(yè)雙重預(yù)防體系應(yīng)知應(yīng)會知識問答
- 8 各種煤礦安全考試試題
- 9 危險化學(xué)品經(jīng)營單位安全生產(chǎn)管理人員模擬考試題庫試卷附答案
- 加壓過濾機(jī)司機(jī)技術(shù)操作規(guī)程
- 樹脂砂混砂工藝知識總結(jié)
- XXXXX現(xiàn)場安全應(yīng)急處置預(yù)案
- 某公司消防安全檢查制度總結(jié)
- 1 煤礦安全檢查工(中級)職業(yè)技能理論知識考核試題含答案
- 4.燃?xì)獍踩a(chǎn)企業(yè)主要負(fù)責(zé)人模擬考試題庫試卷含答案
- 工段(班組)級安全檢查表
- D 氯化工藝作業(yè)模擬考試題庫試卷含答案-4
- 建筑起重司索信號工安全操作要點
- 實驗室計量常見的30個問問答題含解析