版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)名稱:學(xué)生成績管理系統(tǒng)系 (部): 專業(yè)班級 : 學(xué)生姓名 : 學(xué) 號 : 指導(dǎo)教師 : 完成日期 :南京鐵道職業(yè)技術(shù)學(xué)院課程實(shí)訓(xùn)報(bào)告書目 錄目錄 31實(shí)訓(xùn)概述 32 Java 訪問并處理數(shù)據(jù)庫的課題描述 32.1課題簡介 3裝2.2模塊簡介 3裝2.3數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 42.4系統(tǒng)功能層次圖 63系統(tǒng)模塊的詳細(xì)設(shè)計(jì) 63.1 登錄模塊設(shè)計(jì) 63.2 管理員模塊設(shè)計(jì) 63.3 學(xué)生模塊設(shè)計(jì) 84程序運(yùn)行與測試 95實(shí)訓(xùn)總結(jié) 30訂課程實(shí)訓(xùn)報(bào)告書Java 訪問并處理數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)1 實(shí)訓(xùn)概述南京鐵道職業(yè)技術(shù)學(xué)院浦口校區(qū) 2013級網(wǎng)絡(luò) L1301 班于大二上學(xué)期組織了 為期一周的
2、Java 實(shí)訓(xùn),本次實(shí)訓(xùn)的課題是“學(xué)生成績管理系統(tǒng)” 。 通過綜合實(shí) 訓(xùn),掌握運(yùn)用 Java 語言基本知識和技能、 JAVA 的基本語法與 JDBC 數(shù)據(jù)庫技 術(shù)的應(yīng)用;進(jìn)一步熟悉 Oracle 數(shù)據(jù)庫的數(shù)據(jù)庫管理(數(shù)據(jù)庫的創(chuàng)建、應(yīng)用) 。表 的創(chuàng)建、修改、刪除,約束及關(guān)系等、數(shù)據(jù)的查詢處理( insert、update、delete、 select 語句等技術(shù)。2 Java 訪問并處理數(shù)據(jù)庫的課題描述2.1 課題簡介經(jīng)過分析 ,我們使用 Java開發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_發(fā)工具, Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制
3、臺、科學(xué)超級計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有 全球最大的開發(fā)者專業(yè)社群。使用的數(shù)據(jù)庫是 Oracle, Oracle 數(shù)據(jù)庫功能強(qiáng)大 , 學(xué)習(xí)起來也不難,然后,對初始原型系統(tǒng)進(jìn)行需求迭代 ,不斷修正和改進(jìn) ,直到形 成用戶滿意的可行系統(tǒng)。通過實(shí)訓(xùn),我們掌握運(yùn)用 Java語言知識和技能,運(yùn)用 JAVA 的基本語法與 JDBC 數(shù)據(jù)庫技術(shù)的應(yīng)用, 完成對甲骨文數(shù)據(jù)庫的數(shù)據(jù)庫管理、 例如表的設(shè)計(jì)(表 的創(chuàng)建、修改、刪除,字段的默認(rèn)值、約束及關(guān)系等) 、數(shù)據(jù)的查詢處理( insert、 update、delete、select語句的應(yīng)用)等技術(shù);并能結(jié)合數(shù)據(jù)庫應(yīng)用技術(shù)和 jdbc 進(jìn) 行小型數(shù)據(jù)庫管
4、理系統(tǒng)的開發(fā)。2.2 模塊簡介管理員模塊功能需求 :管理員身份登陸系統(tǒng)后,可以對學(xué)生信息進(jìn)行添加、修改和查詢等操作 ,對 學(xué)生進(jìn)行添加、修改和查詢功能操作,還可以修改管理員的登錄密碼。學(xué)生模塊功能需求 :學(xué)生信息管理系統(tǒng)中需要在學(xué)生登錄或驗(yàn)證身份后 ,,可以自行完成學(xué)生個(gè) 人信息的查詢,也可以進(jìn)行修改和刪除個(gè)人信息、修改學(xué)生密碼等操作。2.3 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)定義每個(gè)表的數(shù)據(jù)類型以及字段限制 ,使數(shù)據(jù)庫達(dá)到一定的完整性 .每個(gè)表的 物理設(shè)計(jì)如下:1. 表 admin 保存用戶的個(gè)人信息 用戶信息表主要是用來保存管理員用戶的基本信息 ,包括管理員的 ID 和管理 員的登錄密碼 ,只有符合
5、這兩個(gè)字段的格式要求 ,才能登錄成功 ,結(jié)構(gòu)表如下:表 4-2 管理員信息表字段名類型空值約束條件管理員 IDnumber(10)not null主鍵登錄密碼varchar2(10)not null2. 表 student 保存學(xué)生基本信息 ,結(jié)構(gòu)表如下:表 4-5 學(xué)生信息表字段名類型空值約束條件學(xué)號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)化為宜
6、選用的 DBMS 所支持的數(shù)據(jù)模型相 符合的邏輯結(jié)構(gòu),并對其進(jìn)行優(yōu)化。流程圖層次設(shè)計(jì)圖的格式如下所示:添加按鈕查找按鈕刪除按鈕返回結(jié)束圖 1 管理員對學(xué)生信息管理系統(tǒng)局部 E-R 圖數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表現(xiàn)系統(tǒng)的邏輯處理功能。2.4 系統(tǒng)功能層次圖學(xué)生信息管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫開發(fā)應(yīng)用程序, 系統(tǒng)是和數(shù)據(jù)庫相結(jié) 合.,進(jìn)入系統(tǒng),有兩個(gè)用戶 ,分別是普通學(xué)生、和管理員。學(xué)生信息管理系統(tǒng)登陸管理圖 2 學(xué)生信息管理系統(tǒng)功能層次圖3 系統(tǒng)模塊的詳細(xì)設(shè)計(jì) 本學(xué)生信息管理系統(tǒng)主要模塊 ,即用戶登錄模塊、用戶操作模塊。用戶操作 模塊又分為學(xué)生操作模塊、管理
7、員操作模塊。下面將顯示系統(tǒng)的主要功能模塊。3.1 登錄模塊設(shè)計(jì)學(xué)生信息管理系統(tǒng)前臺登陸模塊可以勾選管理員身份信息,代表以管理員身份進(jìn)入。不勾選即為普通學(xué)生身份登錄。3.2 管理員模塊設(shè)計(jì) 學(xué)生信息管理系統(tǒng)前臺登陸模塊只有一個(gè)登陸窗口分為學(xué)生、 管理員兩個(gè)級 別登陸 ,系統(tǒng)在后臺程序有自動(dòng)限制設(shè)置 ,可以自動(dòng)識別登陸者的限制。其系統(tǒng)登 陸模塊算法如下:1 判斷是否勾選管理員身份;2 輸入用戶名和密碼;3 判斷用戶名和密碼是否匹配;(1)若提示輸入信息錯(cuò)誤 ,則重新輸入;(2)否則以管理員身份進(jìn)入系統(tǒng)。添加學(xué)生信息功能學(xué)生信息管理系統(tǒng)對學(xué)生信息的管理非常重要 ,其中對信息的錄入是系統(tǒng)最 為關(guān)鍵的地
8、方 ,以往我們管理學(xué)生信息的時(shí)候都是手工操作 ,而隨社會(huì)不斷發(fā)展的 今天計(jì)算機(jī)的應(yīng)用已全部取帶了手工操作的方法 ,利用計(jì)算機(jī)可以方便的錄入各 類信息 ,進(jìn)行高效的管理 .學(xué)生信息的錄入就是利用計(jì)算機(jī)通過程序讀入數(shù)據(jù)庫 , 錄入學(xué)生信息模塊算法描述如下:1. 管理員登陸后,錄入學(xué)生信息管理界面;2. 單擊增加學(xué)生按鈕,鍵入學(xué)生 ID ;3. 當(dāng)錄入學(xué)號已經(jīng)存在 ,提示該學(xué)生信息已存在,請重新輸入;4. 否則學(xué)生信息添加成功。查找學(xué)生信息功能學(xué)生信息管理系統(tǒng)對查詢學(xué)生信息管理也很重要 ,方法和增添學(xué)生信息類 似,也同樣是利用計(jì)算機(jī)通過程序讀入數(shù)據(jù)庫 ,查詢學(xué)生信息模塊算法描述如下:1.管理員登陸后
9、,點(diǎn)擊查詢學(xué)生;2.當(dāng)錄入學(xué)生信息不存在時(shí) ,提示沒有該學(xué)生信息,重新輸入;3. 當(dāng)錄入學(xué)生 ID 已經(jīng)存在 ,提示該學(xué)生信息存在,顯示學(xué)生信息; 刪除學(xué)生信息功能學(xué)生選課模塊主要是給刪除學(xué)生信息的功能 ,本功能主要由管理員進(jìn)入數(shù)據(jù) 庫 ,然后學(xué)生管理系統(tǒng) ,其刪除學(xué)生信息模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊刪除學(xué)生;3輸入學(xué)生相關(guān)信息,如學(xué)生 ID ;4. 如該學(xué)生不存在,則提示信息不存在,否則刪除該學(xué)生。修改學(xué)生信息功能此信息修改模塊主要是給學(xué)生和管理員建立信息庫 ,方便管理員查詢操作 ,信 息修改模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊修改學(xué)生信息;3輸入學(xué)生的編號;4編號為空
10、,重新輸入;5輸入不為數(shù)字 ,重新輸入; 6輸入正確 ,進(jìn)入修改頁面進(jìn)行相關(guān)修改。3.3 學(xué)生模塊設(shè)計(jì)查看學(xué)生個(gè)人信息功能 學(xué)生信息管理系統(tǒng)方便了學(xué)生查看自己的學(xué)籍信息 ,如果學(xué)校由于疏忽輸入 了錯(cuò)誤信息 ,自己可以查看并且及時(shí)通知學(xué)校管理員 ,及時(shí)修改 ,減少不必要的麻 煩.此信息查詢模塊主要是方便學(xué)生查詢操作 ,信息查詢模塊算法描述如下:1 學(xué)生成功登陸;2點(diǎn)擊查詢學(xué)生信息;3輸入學(xué)生的編號;4編號為空 ,重新輸入;5輸入不為數(shù)字 ,重新輸入;6輸入正確 ,進(jìn)入信息查詢頁面進(jìn)行相關(guān)修改。 修改學(xué)生登錄密碼功能 學(xué)生可以進(jìn)入學(xué)生管理系統(tǒng)進(jìn)行登錄密碼的修改1. 學(xué)生成功登陸;2單擊修改密碼;3
11、輸入舊密碼、新密碼確認(rèn)后,若舊密碼正確則修改成功,則提示重新輸 入舊密碼;4提交修改完成修改。課程實(shí)訓(xùn)報(bào)告書4 程序運(yùn)行與測試package com.briup.view;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.*;import com.briup.bean.Admin;import com.briup.bean.Student;import com.briup.dao.AdminDao;/登錄窗口import com.bri
12、up.dao.StudentDao;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();public LoginFrame()/初始化窗口本身Dimension d=To
13、olkit.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(); event(); private void event() /為按鈕添加事件處理
14、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();String password=pwdInput.getText().tr
15、im();/判斷是否勾選了管理員多選框if(c.isSelected()/從管理員表中檢測數(shù)據(jù)Admin a=adminDao.findAdminByName(username);/如果a不為null 說明用戶輸入的管理員是存在的 if(a=null)/說明此管理員不存在JOptionPane.showMessageDialog(null, 用戶名或密碼不 正確, 提示信息 , JOptionPane.WARNING_MESSAGE);else/管理員存在 /密碼正確 /密碼不正確 if(a.getPassword().equals(password) /后臺保存的密碼和用戶從客戶端輸入的密碼
16、是一 樣的 JOptionPane.showMessageDialog(null, 登 錄成功 , 提示信息 , JOptionPane.WARNING_MESSAGE);/關(guān)閉當(dāng)前的登錄窗口LoginFrame.this.dispose(); /開啟管理員界面 new AdminFrame(a.getUsername().go();elseJOptionPane.showMessageDialog(null, 用戶名或密 碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE); else /從普通用戶表中檢測數(shù)據(jù) Student s=studentDao.fin
17、dStudentByStudentId(username); if(s=null)JOptionPane.showMessageDialog(null, 用戶名或密碼不 正確, 提示信息 , JOptionPane.WARNING_MESSAGE);elseif(s.getPassword().equals(password) JOptionPane.showMessageDialog(null, 登錄成功 , 提示信息 , JOptionPane.WARNING_MESSAGE);LoginFrame.this.dispose();new StudentFrame(s,null).go();
18、elseJOptionPane.showMessageDialog(null, 用戶名或密 碼不正確 , 提示信息 , JOptionPane.WARNING_MESSAGE); );public void init()/初始化窗口內(nèi)部的組件Container container=getContentPane(); /組件放到哪個(gè)位置由用戶自己來制定 container.setLayout(null);JLabel title=new JLabel(用 戶 登 錄 ); title.setFont(new Font(楷體 ,0,32); title.setBounds(110,5,200,33
19、); container.add(title);JLabel nameLabel=new JLabel(用戶名 :); nameLabel.setBounds(70, 55, 60, 30); container.add(nameLabel);nameInput=new JTextField(); nameInput.setBounds(130,60,150,20); /設(shè)置提示內(nèi)容nameInput.setToolTipText(此處寫登錄用戶名 ); container.add(nameInput);JLabel pwdLabel=new JLabel(密碼 :);pwdLabel.set
20、Bounds(70, 80, 60, 30); container.add(pwdLabel);pwdInput=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, 3
21、0); container.add(loginBtn);resetBtn=new JButton(取消 ); resetBtn.setBounds(215, 115, 60, 30); container.add(resetBtn);public void go()setVisible(true); public static void main(String args) new LoginFrame().go(); package com.briup.dao;import java.sql.Connection;import java.sql.PreparedStatement;import
22、 java.sql.ResultSet;import com.briup.bean.Admin;import com.briup.util.ConnectionFactory; /和管理員相關(guān)的數(shù)據(jù)庫操作public class AdminDao /根據(jù)用戶名查找指定管理員public Admin findAdminByName(String username)Admin admin=null;Connection conn=null;PreparedStatement pstat=null;ResultSet rs=null;try conn=ConnectionFactory.getCon
23、nection();String sql=select username,password from admin where username=?; pstat=conn.prepareStatement(sql);pstat.setString(1, username);rs=pstat.executeQuery();/如果查不到任何數(shù)據(jù) 下方 while 內(nèi)部的代碼不會(huì)執(zhí)行 while(rs.next()/如果能執(zhí)行到這個(gè)地方 說明指定管理員是存在的 admin=new Admin();admin.setUsername(username);admin.setPassword(rs.get
24、String(password); catch (Exception e) / TODO: handle exceptione.printStackTrace();finallyConnectionFactory.close(rs, pstat, conn); return admin; public static void main(String args) AdminDao().findAdminByName(admi).getPassword(); package com.briup.view;import java.awt.Container;import java.awt.GridL
25、ayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.J
26、TextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;/添加學(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 submi
27、tBtn,cancelBtn;private StudentDao studentDao=new StudentDao();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);
28、p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(學(xué)籍號 :);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); name
29、Input=new JTextField(); nameInput.setBounds(100, 10, 120, 20); 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(ageI
30、nput);container.add(p3);p4=new JPanel();p4.setLayout(null);genderLbl=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
31、JButton(確定 ); submitBtn.setBounds(130, 10, 60, 20);cancelBtn=new JButton(取消 );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
32、) /將之前傳遞過來的那個(gè)管理窗口設(shè)置為可用 if(admin!=null)admin.setEnabled(true); /釋放當(dāng)前窗口AddStudentFrame.this.dispose(); );/取消按鈕的操作cancelBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) if(admin!=null)admin.setEnabled(true); AddStudentFrame.this.dispose(); ); /確定按鈕的操作submitBtn.addM
33、ouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) /接受用戶在客戶端輸入的值 /正則表達(dá)式String studentId=idInput.getText().trim();String studentName=nameInput.getText().trim();String age=ageInput.getText().trim();String gender=genderInput.getText().trim();Student s=new Student();/注意別輸入了已存在的學(xué)籍號s.s
34、etStudentid(Long.parseLong(studentId);s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age);s.setGender(gender);/將獲得值封裝成 Student對象調(diào)用指定方法存儲到數(shù)據(jù)庫boolean result=studentDao.addStudent(s);if(result)JOptionPane.showMessageDialog(null, 添 加成功! );if(admin!=null)admin.setEnabled
35、(true); AddStudentFrame.this.dispose();elseJOptionPane.showMessageDialog(null, 添 加失敗 ,請檢查學(xué)籍號是否已存在! ); );public void go()setVisible(true);public static void main(String args) new AddStudentFrame(null).go();import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import
36、java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.List;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import com.briup.bean.Student;import com.briup.
37、dao.StudentDao;public class FindStudentFrame extends JFrame private StudentDao studentDao=new StudentDao(); private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFrame()setTitle( 查找學(xué)生 );setBounds(405, 100, 200, 390); setResizable(false)
38、;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é)籍號 :); idLbl.setBounds(20, 55, 50, 20);idInput=new JTextField(); idInput.setBounds(73, 55, 100, 20);p1.add(idLbl);p1.add(idI
39、nput);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(null);findBtn=new J
40、Button(搜索 );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) FindStudentFrame.this.dispose(); );find
41、Btn.addMouseListener(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) student
42、Name=nameStr; List students=studentDao.findStudentByConditions(studentId, studentName);/將查詢的結(jié)果傳遞給顯示界面new ShowResultFrame(students).go() ); public void go()setVisible(true); public static void main(String args) new FindStudentFrame().go();/System.out.println( .trim().length(); 正則表達(dá)式 s/System.out.prin
43、tln();/System.out.println(1 2 .replaceAll(s, ).length(); package com.briup.view;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import
44、java.util.List;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import com.briup.bean.Student;import com.briup.dao.StudentDao;public class ShowResultFrame extends JFrame private List students;private Studen
45、tDao 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 = getContentPane(); container.setLa
46、yout(new GridLayout(students.size(), 2); / 遍歷集合 將集合中的每一條數(shù)據(jù)顯示到當(dāng)前容器里面 if (students.size() = 0) container.add(new JLabel(暫無記錄! ); else for (Student stu : students) JLabel l = new JLabel(stu.getStudentName();final Student s = stu; l.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent
47、 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) int choose=JOptionPan
48、e.showConfirmDialog(null, 確定刪除 ?);/判斷用戶點(diǎn)擊的是否是確定按鈕 if(choose=JOptionPane.OK_OPTION)ShowResultFrame.this.dispose();students.remove(s);new ShowResultFrame(students).go();studentDao.deleteStudentById(studentId); );container.add(l); container.add(b); private void event() this.addWindowListener(new Window
49、Adapter() public void windowClosing(WindowEvent e) ShowResultFrame.this.dispose(); ); public void go() setVisible(true); public static void main(String args) package com.briup.view;import java.awt.Color;import java.awt.Container;import java.awt.GridLayout;import java.awt.event.MouseAdapter;import ja
50、va.awt.event.MouseEvent;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.briup.bean.Student;import com.briup.dao.StudentDao;public class S
51、tudentFrame extends JFrameprivate JPanel p1,p2,p3,p4,p5,p6;private JLabel idLbl,pwdLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JPasswordField pwdInput;private Student student;private JButton modifyPwdBtn,submitBtn,exitBtn;private String nPassword;pr
52、ivate StudentDao dao=new StudentDao();/student記錄當(dāng)前登錄的用戶 nPassword 記錄修改以后的密碼 public StudentFrame(Student s,String nPassword) this.student=s;this.nPassword=nPassword; /初始化的時(shí)候獲取當(dāng)前用戶的密碼 setTitle( 學(xué)生信息 );setResizable(false);setBounds(400, 100, 300, 400);/默認(rèn)關(guān)閉行為 setDefaultCloseOperation(JFrame.EXIT_ON_CLO
53、SE); init();event(); public void go()setVisible(true);private void init()Container container=getContentPane();container.setLayout(new GridLayout(6, 1);p1=new JPanel();p1.setLayout(null);idLbl=new JLabel(學(xué)籍號 :);idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField(); /需要將數(shù)字類型轉(zhuǎn)換為字符串類型 + /字符串類型 -數(shù)字類型
54、parseInt parseLong idInput.setText(student.getStudentid()+);/設(shè)置學(xué)籍號不可修改/idInput.setEnabled(false);idInput.setEditable(false);/idInput.setDisabledTextColor(new Color(255, 255, 255);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)/代表從登錄界面過來的 pwdInput.setText(student.getPassword();else/如果有新密碼 說明是從修改密碼那個(gè)窗口跳回來的 pwdI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能倉儲廠房出租居間合同范本3篇
- 二零二五年度車房租賃與停車大數(shù)據(jù)分析合同2篇
- 專業(yè)跑鞋定制采購合同(2024版)版B版
- 中英對照商品購銷協(xié)議范本(2024年版)版
- 2025年度綠色節(jié)能型廠房裝修合同范本4篇
- 專屬藥物開發(fā):2024年度定制化服務(wù)協(xié)議版B版
- 二零二五年度餐飲企業(yè)食品安全教育與培訓(xùn)合同6篇
- 2024私人租賃汽車租賃合同范本(含跨境服務(wù))3篇
- 2025年拆除工程勞務(wù)服務(wù)合同范本(含工期保障)4篇
- 2025便鄰士便利店供應(yīng)鏈合作框架協(xié)議范本3篇
- 英語名著閱讀老人與海教學(xué)課件(the-old-man-and-the-sea-)
- 學(xué)校食品安全知識培訓(xùn)課件
- 全國醫(yī)學(xué)博士英語統(tǒng)一考試詞匯表(10000詞全) - 打印版
- 最新《會(huì)計(jì)職業(yè)道德》課件
- DB64∕T 1776-2021 水土保持生態(tài)監(jiān)測站點(diǎn)建設(shè)與監(jiān)測技術(shù)規(guī)范
- ?中醫(yī)院醫(yī)院等級復(fù)評實(shí)施方案
- 數(shù)學(xué)-九宮數(shù)獨(dú)100題(附答案)
- 理正深基坑之鋼板樁受力計(jì)算
- 學(xué)校年級組管理經(jīng)驗(yàn)
- 10KV高壓環(huán)網(wǎng)柜(交接)試驗(yàn)
- 未來水電工程建設(shè)抽水蓄能電站BIM項(xiàng)目解決方案
評論
0/150
提交評論