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)詳細設(shè)計文檔.5 2.4 各個模塊實現(xiàn)方法描述.9 2.5 測試數(shù)據(jù)及期望結(jié)果.93.系統(tǒng)測試.124.總結(jié)或心得體會.185.參考文獻.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é)生信息進行修改。(3)查詢學(xué)生基本信息的功能可使用 “姓名”對已存有的學(xué)生資料進行查詢。(4)刪除學(xué)生基本信息的功能 在管理員模式下,只要選擇表格中的某個學(xué)生,就可以刪除該學(xué)生。(5)用戶登陸用不同的登錄權(quán)限可以進入不同的后臺界面,從而實現(xiàn)權(quán)限操作。(6)用戶登陸信息設(shè)置可以修改用戶登陸密碼1.2 設(shè)計的目的本程序用于用戶對少量學(xué)生信息進行簡單的管理,本程序針對于對安全系數(shù)要求不高,操作不是很復(fù)雜的小型客戶開發(fā)
3、。本程序的管理員可以實現(xiàn)對學(xué)生信息的錄入、查詢、修改、刪除等操作,同時支持查看所有學(xué)生信息,學(xué)生只能查詢自己的信息。程序功能完善,界面簡潔美觀,布局合理,操作簡便,簡單易用,任何人可輕松操作。同時,本程序?qū)ο到y(tǒng)要求配置較低,運行速度快,而卻對數(shù)據(jù)庫管理要求較低。本程序數(shù)據(jù)庫采用office2007版本的access數(shù)據(jù)庫(.accdb)進行數(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ù)流圖進度條(閃屏)用戶登陸登陸驗證falsetrue班委(管理員)界面普通學(xué)生界面查詢添加修改刪除查詢顯示班委(管理員員 )普通學(xué)生(用戶)退出退出系統(tǒng)結(jié)束結(jié)束退出系統(tǒng)truefalsefalsetrue修改用戶登陸密碼顯示登陸用戶信息 圖4 數(shù)據(jù)流圖2.3系統(tǒng)詳細設(shè)計文檔 表3 包以及包所包含的類包名(package)所包含的類說明com.sqlConnectionSqlConn.java用于連接數(shù)據(jù)庫com.ToolsMyFont.java用于設(shè)置窗體各組件的字
6、體com.ViewIndex.java使用進度條與線程結(jié)合實現(xiàn)閃屏,初始化進入登陸界面Login.java登陸界面,管理員與用戶登陸ManageView.java管理員界面,可進行所有操作StuMainView.java普通學(xué)生(用戶)界面,只能進行部分操作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定義進度條JLabel jl1用于在窗體的北部放一張圖片,南部是進度條int width,height用于獲取顯示屏分辨率大小,以便設(shè)置窗口的默認位置public Index()初始化窗口的相關(guān)組件public void run()進度條線程的run方法,用于設(shè)置線程的屬性int progressValue定義一個數(shù)組,存放進度條顯示時需要的數(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是使用進度條與線程結(jié)合實現(xiàn)閃屏,初始化進入登陸界面。Login是登陸界面,管理員與用戶登陸,可以分別登入管理員和用戶,管理員與用戶的登錄進去后可分別按自己的權(quán)限操作。2.5 測試數(shù)據(jù)及期望結(jié)果在登入窗口可以分別登入管理員和用戶的賬號及密碼,會進入權(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 刪除文件時的確認對話框(當(dāng)點擊確認時才會刪除,點擊取消,則返回主界面) 圖19 顯示所有登陸用戶信息 圖20 修改用戶登陸密碼,選中某個用戶進行修改 圖21 關(guān)閉用戶記錄,即不顯示所有用戶信息 圖22 關(guān)閉學(xué)生記錄 圖23 退出系統(tǒng)
12、確認對話框,只有確認時才會退出系統(tǒng),否則返加主界面 圖24 普通學(xué)生登陸后的界面(即不能對學(xué)生信息進行添加,修改和刪除以及用戶密碼修改,對應(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、 參考文獻(1)趙海廷.Java語言程序設(shè)計教程.北京:清華大學(xué)出版社.2012(2)孫印杰,劉斌,孫玉強.Java編程案例精解
14、.北京:電子工業(yè)出版 社.2005(3)何梅.java編程實例系列叢書.北京:清華大學(xué)出版社,2002(4)楊昭.編著二級Java語言程序設(shè)計教程.北京:中國水利水電出版社,2006(5)趙文靖編著.Java程序設(shè)計基礎(chǔ)與上機指導(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、則會回到主界面/對于年齡,則需要進行兩個判斷,一個是不能為空,另一個必須是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/定義與進度條相關(guān)的組件JProgressBar jpb;/定義進度條JLabel jl1;/用于在窗體的北部放一張圖片,南部是進
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)建進度條jpb=new JProgressBar();/設(shè)置進度條屬性jpb.setStringPainted(true);/顯示當(dāng)前進度值信
40、息jpb.setIndeterminate(false);/確定進度條執(zhí)行完成后不來回滾動jpb.setBorderPainted(false);/設(shè)置進度條邊框不顯示jpb.setBackground(Color.darkGray);/設(shè)置進度條的背景色/添加組件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);/進度條線程的run方法,用于設(shè)置線程的屬性public void run() /定義一個數(shù)組,存放進度條顯示時需要的數(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ù)組中的進度值/當(dāng)進度完成后,執(zhí)行相應(yīng)的操作,如切換到其他的窗口,同時關(guān)閉進度條窗口等new Login();/關(guān)閉進度條窗口this.dispose();(5) 功能:這是學(xué)生/管理員登陸的窗口,根據(jù)權(quá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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 川渝旅游日記成都重慶城市介紹推薦景點美食推薦
- XX國有企業(yè)黨委書記個人述責(zé)述廉報告及2025年重點工作計劃
- 世界濕地日濕地的含義及價值
- 20XX年春節(jié)節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)人到場心到崗
- 大唐女子圖鑒唐朝服飾之美器物之美繪畫之美生活之美
- 節(jié)后開工第一課輕松掌握各要點節(jié)后常見的八大危險
- 廈門城市旅游介紹廈門景點介紹廈門美食展示
- 節(jié)后開工第一課復(fù)工復(fù)產(chǎn)十注意節(jié)后復(fù)工十檢查
- 傳統(tǒng)文化百善孝為先孝道培訓(xùn)
- 深圳城市旅游介紹景點推薦美食探索
- 節(jié)后復(fù)工安全生產(chǎn)培訓(xùn)勿忘安全本心人人講安全個個會應(yīng)急
- 預(yù)防性維修管理
- 常見閥門類型及特點
- 設(shè)備預(yù)防性維修
- 2.乳化液泵工理論考試試題含答案