




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)名稱:學(xué)生成績(jī)管理系統(tǒng)系 (部):專業(yè)班級(jí) :學(xué)生 :學(xué)號(hào):指導(dǎo)教師 :完成日期 :.鐵道職業(yè)技術(shù)學(xué)院.目錄.31.3.2 Java..2. ...1.5. .39.Java 訪問(wèn)并處理數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)實(shí)訓(xùn)概述鐵道職業(yè)技術(shù)學(xué)院浦口校區(qū)2013 級(jí)網(wǎng)絡(luò) L1301 班于大二上學(xué)期組織了為期一周的 Java 實(shí)訓(xùn),本次實(shí)訓(xùn)的課題是“學(xué)生成績(jī)管理系統(tǒng)”。 通過(guò)綜合實(shí)訓(xùn),掌握運(yùn)用 Java 語(yǔ)言基本知識(shí)和技能、JAVA 的基本語(yǔ)法與 JDBC數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用;進(jìn)一步熟悉 Oracle 數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理
2、(數(shù)據(jù)庫(kù)的創(chuàng)建、 應(yīng)用)。表的創(chuàng)建、修改、刪除,約束及關(guān)系等、 數(shù)據(jù)的查詢處理( insert、update 、delete 、select語(yǔ)句等技術(shù)。2 Java訪問(wèn)并處理數(shù)據(jù)庫(kù)的課題描述2.1課題簡(jiǎn)介經(jīng)過(guò)分析 , 我們使用 Java 開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具, Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。使用的數(shù)據(jù)庫(kù)是Oracle ,Oracle 數(shù)據(jù)庫(kù)功能強(qiáng)大 ,學(xué)習(xí)起來(lái)也不難, 然后,對(duì)初始原型系統(tǒng)進(jìn)行需求迭代, 不斷修正和改進(jìn) , 直到形成用
3、戶滿意的可行系統(tǒng)。通過(guò)實(shí)訓(xùn),我們掌握運(yùn)用Java 語(yǔ)言知識(shí)和技能,運(yùn)用JAVA的基本語(yǔ)法與JDBC數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用, 完成對(duì)甲骨文數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理、例如表的設(shè)計(jì) (表的創(chuàng)建、修改、刪除,字段的默認(rèn)值、 約束及關(guān)系等)、數(shù)據(jù)的查詢處理 (insert、update 、delete 、select語(yǔ)句的應(yīng)用)等技術(shù);并能結(jié)合數(shù)據(jù)庫(kù)應(yīng)用技術(shù)和jdbc進(jìn)行小型數(shù)據(jù)庫(kù)管理系統(tǒng)的開發(fā)。.2.2模塊簡(jiǎn)介管理員模塊功能需求:管理員身份登陸系統(tǒng)后,可以對(duì)學(xué)生信息進(jìn)行添加、修改和查詢等操作, 對(duì)學(xué)生進(jìn)行添加、修改和查詢功能操作,還可以修改管理員的登錄密碼。學(xué)生模塊功能需求:學(xué)生信息管理系統(tǒng)中需要在學(xué)生登錄或驗(yàn)證
4、身份后, ,可以自行完成學(xué)生個(gè)人信息的查詢,也可以進(jìn)行修改和刪除個(gè)人信息、修改學(xué)生密碼等操作。2.3數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)定義每個(gè)表的數(shù)據(jù)類型以及字段限制, 使數(shù)據(jù)庫(kù)達(dá)到一定的完整性. 每個(gè)表的物理設(shè)計(jì)如下:表 admin 保存用戶的個(gè)人信息用戶信息表主要是用來(lái)保存管理員用戶的基本信息, 包括管理員的ID 和管理員的登錄密碼 , 只有符合這兩個(gè)字段的格式要求, 才能登錄成功 , 結(jié)構(gòu)表如下:表 4-2 管理員信息表字段名類型空值約束條件管理員 IDnumber(10)not null主鍵登錄密碼varchar2(10)not null表 student 保存學(xué)生基本信息 , 結(jié)構(gòu)表如下:表
5、4-5 學(xué)生信息表字段名類型空值約束條件.學(xué)號(hào)number(10)not null主鍵varchar2(20)not null性別varchar2 (3)年齡number(2)登錄密碼varchar2(10)not null邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本E-R 圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對(duì)其進(jìn)行優(yōu)化。流程圖層次設(shè)計(jì)圖的格式如下所示:開始.進(jìn)入登錄頁(yè)面選擇權(quán)限(例如管理員)選擇要實(shí)現(xiàn)的按鈕1.添加 2.查詢 3.刪除添加按鈕添加一個(gè)學(xué)生信息,包括ID ,姓名,年齡,性別查找數(shù)據(jù)庫(kù)中一個(gè)學(xué)生信息,查找按鈕
6、包括 ID ,姓名,年齡,性別刪除按鈕刪除一個(gè)學(xué)生信息,包括他的ID ,姓名,年齡,性別返回結(jié)束圖 1管理員對(duì)學(xué)生信息管理系統(tǒng)局部E-R 圖數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)部信息的流向, 并表現(xiàn)系統(tǒng)的邏輯處理功能。.2.4 系統(tǒng)功能層次圖學(xué)生信息管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)開發(fā)應(yīng)用程序,系統(tǒng)是和數(shù)據(jù)庫(kù)相結(jié)合 ., 進(jìn)入系統(tǒng) , 有兩個(gè)用戶 , 分別是普通學(xué)生、和管理員。學(xué)生信息管理系統(tǒng)登陸管理學(xué)管生理登員錄登錄修查增查刪修改詢加找除改密信學(xué)學(xué)學(xué)學(xué)碼息生生生生圖 2學(xué)生信息管理系統(tǒng)功能層次圖系統(tǒng)模塊的詳細(xì)設(shè)計(jì)本學(xué)生信息管理系統(tǒng)主要模塊, 即用戶登錄模塊、用戶操作模塊。用戶操作模塊又
7、分為學(xué)生操作模塊、管理員操作模塊。下面將顯示系統(tǒng)的主要功能模塊。3.1 登錄模塊設(shè)計(jì)學(xué)生信息管理系統(tǒng)前臺(tái)登陸模塊可以勾選管理員身份信息,代表以管理員身份進(jìn)入。不勾選即為普通學(xué)生身份登錄。.3.2 管理員模塊設(shè)計(jì)學(xué)生信息管理系統(tǒng)前臺(tái)登陸模塊只有一個(gè)登陸窗口分為學(xué)生、管理員兩個(gè)級(jí)別登陸 , 系統(tǒng)在后臺(tái)程序有自動(dòng)限制設(shè)置, 可以自動(dòng)識(shí)別登陸者的限制。 其系統(tǒng)登陸模塊算法如下:判斷是否勾選管理員身份;輸入用戶名和密碼;判斷用戶名和密碼是否匹配;(1)若提示輸入信息錯(cuò)誤 , 則重新輸入;(2)否則以管理員身份進(jìn)入系統(tǒng)。添加學(xué)生信息功能學(xué)生信息管理系統(tǒng)對(duì)學(xué)生信息的管理非常重要, 其中對(duì)信息的錄入是系統(tǒng)最為
8、關(guān)鍵的地方 , 以往我們管理學(xué)生信息的時(shí)候都是手工操作, 而隨社會(huì)不斷發(fā)展的今天計(jì)算機(jī)的應(yīng)用已全部取帶了手工操作的方法, 利用計(jì)算機(jī)可以方便的錄入各類信息 , 進(jìn)行高效的管理 . 學(xué)生信息的錄入就是利用計(jì)算機(jī)通過(guò)程序讀入數(shù)據(jù)庫(kù) , 錄入學(xué)生信息模塊算法描述如下:管理員登陸后,錄入學(xué)生信息管理界面;單擊增加學(xué)生按鈕,鍵入學(xué)生 ID;當(dāng)錄入學(xué)號(hào)已經(jīng)存在 , 提示該學(xué)生信息已存在,請(qǐng)重新輸入;否則學(xué)生信息添加成功。查找學(xué)生信息功能學(xué)生信息管理系統(tǒng)對(duì)查詢學(xué)生信息管理也很重要, 方法和增添學(xué)生信息類似,也同樣是利用計(jì)算機(jī)通過(guò)程序讀入數(shù)據(jù)庫(kù), 查詢學(xué)生信息模塊算法描述如下:.管理員登陸后,點(diǎn)擊查詢學(xué)生;當(dāng)
9、錄入學(xué)生信息不存在時(shí) , 提示沒(méi)有該學(xué)生信息,重新輸入;當(dāng)錄入學(xué)生 ID 已經(jīng)存在 , 提示該學(xué)生信息存在,顯示學(xué)生信息;刪除學(xué)生信息功能學(xué)生選課模塊主要是給刪除學(xué)生信息的功能 , 本功能主要由管理員進(jìn)入數(shù)據(jù)庫(kù) , 然后學(xué)生管理系統(tǒng) , 其刪除學(xué)生信息模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊刪除學(xué)生;3輸入學(xué)生相關(guān)信息,如學(xué)生ID;如該學(xué)生不存在,則提示信息不存在,否則刪除該學(xué)生。修改學(xué)生信息功能此信息修改模塊主要是給學(xué)生和管理員建立信息庫(kù), 方便管理員查詢操作 ,信息修改模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊修改學(xué)生信息;3輸入學(xué)生的編號(hào);4編號(hào)為空 , 重新輸入;5輸入不為數(shù)字 ,
10、重新輸入;6輸入正確 , 進(jìn)入修改頁(yè)面進(jìn)行相關(guān)修改。.3.3 學(xué)生模塊設(shè)計(jì)查看學(xué)生個(gè)人信息功能學(xué)生信息管理系統(tǒng)方便了學(xué)生查看自己的學(xué)籍信息, 如果學(xué)校由于疏忽輸入了錯(cuò)誤信息 , 自己可以查看并且及時(shí)通知學(xué)校管理員, 及時(shí)修改 , 減少不必要的麻煩 .此信息查詢模塊主要是方便學(xué)生查詢操作, 信息查詢模塊算法描述如下:學(xué)生成功登陸;2點(diǎn)擊查詢學(xué)生信息;3輸入學(xué)生的編號(hào);4編號(hào)為空 , 重新輸入;5輸入不為數(shù)字 , 重新輸入;6輸入正確 , 進(jìn)入信息查詢頁(yè)面進(jìn)行相關(guān)修改。修改學(xué)生登錄密碼功能學(xué)生可以進(jìn)入學(xué)生管理系統(tǒng)進(jìn)行登錄密碼的修改學(xué)生成功登陸;2單擊修改密碼;3輸入舊密碼、新密碼確認(rèn)后,若舊密碼正
11、確則修改成功,則提示重新輸入舊密碼;4提交修改完成修改。.程序運(yùn)行與測(cè)試package .briup.view;登錄窗口public class LoginFrame extends JFrameprivate JCheckBox c;private JButton loginBtn,resetBtn;private JTextField nameInput;private JPasswordField pwdInput;private AdminDao adminDao=new AdminDao();private StudentDao studentDao=new StudentDao()
12、;public LoginFrame()初始化窗口本身Dimension d=Toolkit.getDefaultToolkit().getScreenSize();int width=d.width;.int height=d.height;設(shè)置坐標(biāo)為 400-400 寬為 300 高為 200 setBounds(width/2-200, height/2-100, 400, 200); setTitle( 登錄界面 );設(shè)置窗口為不可縮放setResizable(false);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();ev
13、ent();private void event() 為按鈕添加事件處理resetBtn.addMouseListener(new MouseAdapter() 監(jiān)聽鼠標(biāo)單擊事件Overridepublic void mouseClicked(MouseEvent e) System.exit(0););loginBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) 獲取用戶輸入的值String username=nameInput.getText().trim();Stri
14、ng password=pwdInput.getText().trim();.判斷是否勾選了管理員多選框if(c.isSelected()從管理員表中檢測(cè)數(shù)據(jù)Admin a=adminDao.findAdminByName(username);如果 a 不為 null 說(shuō)明用戶輸入的管理員是存在的if(a=null)說(shuō)明此管理員不存在JOptionPane.showMessageDialog(null, 用戶名或密碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE);else管理員存在 / 密碼正確 / 密碼不正確if(a.getPassword().equal
15、s(password)后臺(tái)保存的密碼和用戶從客戶端輸入的密碼是一樣的 JOptionPane.showMessageDialog(null, 登錄成功 , 提示信息 , JOptionPane.WARNING_MESSAGE);關(guān)閉當(dāng)前的登錄窗口開啟管理員界面new AdminFrame(a.getUsername().go();elseJOptionPane.showMessageDialog(null, 用戶名或密碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE);.else從普通用戶表中檢測(cè)數(shù)據(jù)Students=studentDao.findStuden
16、tByStudentId(username);if(s=null)JOptionPane.showMessageDialog(null, 用戶名或密碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE);elseif(s.getPassword().equals(password)JOptionPane.showMessageDialog(null, 登錄成功, 提示信息 , JOptionPane.WARNING_MESSAGE);new StudentFrame(s,null).go();elseJOptionPane.showMessageDialog(nu
17、ll, 用戶名或密碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE););public void init()初始化窗口部的組件Container container=getContentPane();組件放到哪個(gè)位置由用戶自己來(lái)制定.container.setLayout(null);JLabel title=new JLabel(用 戶 登 錄);title.setFont(new Font(楷體 ,0,32);title.setBounds(110,5,200,33);container.add(title);JLabel nameLabel=new J
18、Label(用戶名 :);nameLabel.setBounds(70, 55, 60, 30);container.add(nameLabel);nameInput=new JTextField();nameInput.setBounds(130,60,150,20);設(shè)置提示容nameInput.setToolTipText(此處寫登錄用戶名 );container.add(nameInput);JLabel pwdLabel=new JLabel(密碼:);pwdLabel.setBounds(70, 80, 60, 30);container.add(pwdLabel);pwdInpu
19、t=new JPasswordField();pwdInput.setBounds(130,85,150,20);pwdInput.setToolTipText(此處寫密碼 );container.add(pwdInput);c=new JCheckBox( 管理員 );c.setBounds(68, 115, 70, 30);.container.add(c);loginBtn=new JButton(登錄 );loginBtn.setBounds(140, 115, 60, 30);container.add(loginBtn);resetBtn=new JButton(取消 );rese
20、tBtn.setBounds(215, 115, 60, 30);container.add(resetBtn);public void go()setVisible(true);public static void main(String args) new LoginFrame().go();package .briup.dao;和管理員相關(guān)的數(shù)據(jù)庫(kù)操作.public class AdminDao 根據(jù)用戶名查找指定管理員public Admin findAdminByName(String username)Admin admin=null;Connection conn=null;Pr
21、eparedStatement pstat=null;ResultSet rs=null;try conn=ConnectionFactory.getConnection();String sql=select username,password from admin whereusername=?;pstat=conn.prepareStatement(sql);pstat.setString(1, username);rs=pstat.executeQuery();/ 如果查不到任何數(shù)據(jù)下方 while 部的代碼不會(huì)執(zhí)行while(rs.next()/ 如果能執(zhí)行到這個(gè)地方說(shuō)明指定管理員是
22、存在的admin=new Admin();admin.setUsername(username);admin.setPassword(rs.getString(password); catch (Exception e) TODO: handle exception.e.printStackTrace();finallyConnectionFactory.close(rs, pstat, conn); return admin; public static void main(String args) AdminDao().findAdminByName(admi).getPassword()
23、;package .briup.view;.添加學(xué)生public class AddStudentFrame extends JFrameprivate AdminFrame admin;private JPanel p1,p2,p3,p4,p5;private JLabel idLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JButton submitBtn,cancelBtn;private StudentDao studentDao=new St
24、udentDao();public AddStudentFrame(AdminFrame admin)this.admin=admin;setTitle(添加學(xué)生 );setResizable(false);setBounds(400, 100, 300, 400);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(5, 1);p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(學(xué)籍
25、號(hào) :);.idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel(:);nameLbl.setBounds(50, 10, 50, 20);nameInput=new JTextField();nameInput.setBounds(100, 10, 120, 2
26、0);p2.add(nameLbl);p2.add(nameInput);container.add(p2);p3=new JPanel();p3.setLayout(null);ageLbl=new JLabel(年齡 :);ageLbl.setBounds(50, 10, 50, 20);ageInput=new JTextField();ageInput.setBounds(100, 10, 120, 20);p3.add(ageLbl);.p3.add(ageInput);container.add(p3);p4=new JPanel();p4.setLayout(null);gend
27、erLbl=new JLabel(性別 :);genderLbl.setBounds(50, 10, 50, 20);genderInput=new JTextField();genderInput.setBounds(100, 10, 120, 20);p4.add(genderLbl);p4.add(genderInput);container.add(p4);p5=new JPanel();p5.setLayout(null);submitBtn=new JButton(確定 );submitBtn.setBounds(130, 10, 60, 20);cancelBtn=new JBu
28、tton(取消 );cancelBtn.setBounds(195, 10, 60, 20);p5.add(submitBtn);p5.add(cancelBtn);container.add(p5);private void event()設(shè)置當(dāng)前窗口的關(guān)閉操作.此處可自定義窗口關(guān)閉時(shí)所作操作this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) 將之前傳遞過(guò)來(lái)的那個(gè)管理窗口設(shè)置為可用if(admin!=null)admin.setEnabled(true);釋放當(dāng)前窗口);取消按
29、鈕的操作cancelBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) if(admin!=null)admin.setEnabled(true););確定按鈕的操作submitBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) 接受用戶在客戶端輸入的值正則表達(dá)式String studentId=idInput.getText().trim();String stude
30、ntName=nameInput.getText().trim();.String age=ageInput.getText().trim();String gender=genderInput.getText().trim();Student s=new Student();注意別輸入了已存在的學(xué)籍號(hào)s.setStudentid(Long.parseLong(studentId);s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age);s.setGender(gender);將
31、獲得值封裝成 Student 對(duì)象調(diào)用指定方法存儲(chǔ)到數(shù)據(jù)庫(kù)boolean result=studentDao.addStudent(s);if(result)JOptionPane.showMessageDialog(null, 添加成功! );if(admin!=null)admin.setEnabled(true);elseJOptionPane.showMessageDialog(null, 添加失敗 , 請(qǐng)檢查學(xué)籍號(hào)是否已存在! ););public void go()setVisible(true);.public static void main(String args) new
32、AddStudentFrame(null).go();package .briup.view;.;public class FindStudentFrame extends JFrameprivate StudentDao studentDao=new StudentDao();private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFrame()setTitle(查找學(xué)生 );setBounds(405, 100,
33、 200, 390);setResizable(false);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(3, 1);JPanel p1=new JPanel();.p1.setLayout(null);idLbl=new JLabel(學(xué)籍號(hào) :);idLbl.setBounds(20, 55, 50, 20);idInput=new JTextField();idInput.setBounds(73, 55, 100, 20
34、);p1.add(idLbl);p1.add(idInput);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel(:);nameLbl.setBounds(20, 55, 50, 20);nameInput=new JTextField();nameInput.setBounds(73, 55, 100, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);JPanel p3=new JPanel();p3.setLayout(
35、null);findBtn=new JButton(搜索 );findBtn.setBounds(60,30,60,20);cancelBtn=new JButton(取消 );.cancelBtn.setBounds(123,30,60,20);p3.add(findBtn);p3.add(cancelBtn);container.add(p3);private void event()this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) );findBtn.addMouseLi
36、stener(new MouseAdapter() public void mouseClicked(MouseEvent e) String idStr=idInput.getText().trim();String nameStr=nameInput.getText().trim();Long studentId=null;String studentName=null;if(idStr.length()!=0)/ 如果 id 有值studentId=Long.parseLong(idStr);if(nameStr.length()!=0)studentName=nameStr; List
37、students=studentDao.findStudentByConditions(studentId, studentName);將查詢的結(jié)果傳遞給顯示界面new ShowResultFrame(students).go();.public void go()setVisible(true);public static void main(String args) new FindStudentFrame().go();/正則表達(dá)式s/package .briup.view;.public class ShowResultFrame extends JFrame private List
38、 students;private StudentDao studentDao=new StudentDao();public ShowResultFrame(List students) setTitle(查詢結(jié)果 );if (students.size() 0) setBounds(100, 100, 300, 60 * students.size(); else setBounds(100, 100, 300, 150);this.students = students;init();private void init() Container container = getContent
39、Pane();container.setLayout(new GridLayout(students.size(), 2);遍歷集合 將集合中的每一條數(shù)據(jù)顯示到當(dāng)前容器里面.if (students.size() = 0) container.add(new JLabel(暫無(wú)記錄! ); else for (Student stu : students) JLabel l = new JLabel(stu.getStudentName();final Student s = stu;l.addMouseListener(new MouseAdapter() public void mouse
40、Clicked(MouseEvent e) if(e.getClickCount()=2)new StudentFrame(s, null).go(););l.setBorder(BorderFactory.createLineBorder(new Color(253,253,187);JButton b = new JButton(刪除 );final Long studentId = stu.getStudentid();b.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) intchoos
41、e=JOptionPane.showConfirmDialog(null, 確定刪除 ?);判斷用戶點(diǎn)擊的是否是確定按鈕if(choose=JOptionPane.OK_OPTION)students.remove(s);.new ShowResultFrame(students).go();studentDao.deleteStudentById(studentId););container.add(l);container.add(b);private void event() this.addWindowListener(new WindowAdapter() public void w
42、indowClosing(WindowEvent e) );public void go() setVisible(true);public static void main(String args) package .briup.view;.public class StudentFrame extends JFrameprivate JPanel p1,p2,p3,p4,p5,p6;private JLabel idLbl,pwdLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,gender
43、Input;private JPasswordField pwdInput;private Student student;private JButton modifyPwdBtn,submitBtn,exitBtn;private String nPassword;private StudentDao dao=new StudentDao();/student記錄當(dāng)前登錄的用戶nPassword 記錄修改以后的密碼public StudentFrame(Student s,String nPassword)this.student=s;.this.nPassword=nPassword;初始
44、化的時(shí)候獲取當(dāng)前用戶的密碼setTitle(學(xué)生信息 );setResizable(false);setBounds(400, 100, 300, 400);默認(rèn)關(guān)閉行為setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event();public void go()setVisible(true);private void init()Container container=getContentPane();container.setLayout(new GridLayout(6, 1);p1=new JPanel();p1.setL
45、ayout(null);idLbl=new JLabel(學(xué)籍號(hào) :);idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();需要將數(shù)字類型轉(zhuǎn)換為字符串類型 +字符串類型 - 數(shù)字類型 parseInt parseLong idInput.setText(student.getStudentid()+);./ 設(shè)置學(xué)籍號(hào)不可修改idInput.setEnabled(false);idInput.setEditable(false);idInput.setDisabledTextColor(new Color(255, 255, 255
46、); idInput.setDisabledTextColor(Color.black); idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput); container.add(p1); p2=new JPanel(); p2.setLayout(null);pwdLbl=new JLabel( 密碼 :);pwdLbl.setBounds(50, 30, 50, 20);pwdInput=new JPasswordField();if(nPassword=null)代表從登錄界面過(guò)來(lái)的pwdInput.setText
47、(student.getPassword();else/ 如果有新密碼說(shuō)明是從修改密碼那個(gè)窗口跳回來(lái)的pwdInput.setText(nPassword);pwdInput.setEditable(false);pwdInput.setDisabledTextColor(Color.black);.pwdInput.setBounds(100, 30, 120, 20);modifyPwdBtn=new JButton(修改 );modifyPwdBtn.setBounds(225, 30, 60, 20);p2.add(pwdLbl);p2.add(pwdInput);p2.add(mod
48、ifyPwdBtn);container.add(p2);p3=new JPanel();p3.setLayout(null);nameLbl=new JLabel( 姓名:);nameLbl.setBounds(50, 30, 50, 20);nameInput=new JTextField();nameInput.setText(student.getStudentName();nameInput.setBounds(100, 30, 120, 20);p3.add(nameLbl);p3.add(nameInput);container.add(p3);p4=new JPanel();p
49、4.setLayout(null);ageLbl=new JLabel(年齡 :);ageLbl.setBounds(50, 30, 50, 20);ageInput=new JTextField();.ageInput.setText(student.getAge()+);ageInput.setBounds(100, 30, 120, 20);p4.add(ageLbl);p4.add(ageInput);container.add(p4);p5=new JPanel();p5.setLayout(null);genderLbl=new JLabel(性別:);genderLbl.setBounds(50, 30, 50, 20);genderInput=new JTextField();genderInput.setText(student.getGender();genderInput.setBounds(100, 30, 120, 20);p5.add(genderLbl);p5.add(genderInput);container.add(p5);p6=new JPanel();p6.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中介門店裝修升級(jí)合同范例
- 企業(yè)管理課程故事
- 2025《采購(gòu)代理合同》
- 2025年中外合資企業(yè)土地使用權(quán)合同書
- 體育培訓(xùn)新合同標(biāo)準(zhǔn)文本
- 公司對(duì)接合同范例
- 幼兒園動(dòng)手能力發(fā)展教育
- 個(gè)人借款協(xié)議合同標(biāo)準(zhǔn)文本
- 2025年合同押運(yùn)駕駛員年度總結(jié)與擔(dān)保行業(yè)合同監(jiān)管調(diào)研報(bào)告匯編
- it外包結(jié)算合同標(biāo)準(zhǔn)文本
- 安徽省蚌埠市2025屆高三第二次教學(xué)質(zhì)量檢查考試英語(yǔ)試卷(含答案)
- 電力行業(yè)電力調(diào)度培訓(xùn)
- LY/T 1821-2009林業(yè)地圖圖式
- 虞大明教學(xué)實(shí)錄——《刷子李》
- 第二代身份證號(hào)碼驗(yàn)證器
- 市場(chǎng)調(diào)查與預(yù)測(cè)復(fù)習(xí)資料
- 施工組織設(shè)計(jì)雙代號(hào)時(shí)標(biāo)網(wǎng)絡(luò)圖
- 財(cái)政部金融企業(yè)不良資產(chǎn)批量轉(zhuǎn)讓管理辦法(財(cái)金[2012]6號(hào))
- 辦公建筑設(shè)計(jì)規(guī)范2019
- 吉林省公務(wù)員(參照管理人員)調(diào)任(轉(zhuǎn)任)審批表
- 接地網(wǎng)測(cè)試報(bào)告.docx
評(píng)論
0/150
提交評(píng)論