




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
宿舍管理系統(tǒng)宿舍管理系統(tǒng)功能簡介設(shè)計思路技術(shù)分析實現(xiàn)小結(jié)主要內(nèi)容修改學(xué)生信息功能簡介1、介紹在查詢學(xué)生信息對話框雙擊某行學(xué)生信息后,彈出修改學(xué)生信息菜單,要求修改學(xué)生姓名、學(xué)生性別以及學(xué)生電話,填寫內(nèi)容不能為空。提交修改學(xué)生信息時,若填寫內(nèi)容有空,則彈出對話框提示“輸入有誤”。當(dāng)填寫內(nèi)容正確,保存成功則提示“修改成功”并刷新查詢學(xué)生信息對話框的內(nèi)容,如果系統(tǒng)出現(xiàn)異常,則提示“修改失敗”。2、“修改學(xué)生信息”對話框效果設(shè)計思路一、表示層ChangeStudentDialog類設(shè)計在工程的com.ruanko.rm.gui包中,創(chuàng)建ChangeStudentDialog類,此類繼承于javax.swing.JDialog,用于顯示“修改學(xué)生信息”對話框,并接收填寫信息,進(jìn)行修改學(xué)生信息請求。此處調(diào)用業(yè)務(wù)邏輯層的StudentService.change(student)方法進(jìn)行修改學(xué)生信息處理。實現(xiàn)的效果如下:設(shè)計思路二、業(yè)務(wù)邏輯層StudentService類設(shè)計在StudentService類中,添加change()方法,根據(jù)業(yè)務(wù)邏輯的需求,調(diào)用數(shù)據(jù)訪問類StudentDao的方法,來修改學(xué)生信息。方法原型:publicbooleanchange(Studentstudent);功能說明:處理修改學(xué)生信息業(yè)務(wù)邏輯,調(diào)用數(shù)據(jù)訪問層change()方法修改學(xué)生信息;參數(shù)說明:student學(xué)生實體信息;返回值:true修改成功,false修改失敗。三、數(shù)據(jù)訪問層StudentDao類設(shè)計在StudentDao類,定義change()方法,利用文件IO操作將修改后的學(xué)生信息保存到數(shù)據(jù)存儲文檔中。方法原型:publicbooleanchange(Studentstudent);功能說明:修改學(xué)生信息;參數(shù)說明:student學(xué)生實體信息;返回值:true修改成功,false修改失敗。1、程序結(jié)構(gòu)設(shè)計2、JavaSwing技術(shù)(1)JDialog類、JPanel類、JLabel類、JTextField類、JButton類的應(yīng)用;(2)邊框布局(BorderLayout)、網(wǎng)格布局(GridLayout)和流式布局(FlowLayout);(3)面板嵌套以及將組件添加到面板;(4)設(shè)置文本輸入框的值。3、表格雙擊事件處理4、文件操作涉及到JavaIO中的BufferedReader、InputStreamReader、、、PrintWriter等類。技術(shù)分析編程實踐1、如何創(chuàng)建“修改學(xué)生信息”對話框?2、如何添加表格的鼠標(biāo)雙擊事件?3、修改學(xué)生信息的邏輯是怎樣的?4、怎樣修改文本中的學(xué)生信息?實現(xiàn)在“查詢學(xué)生信息”的迭代基礎(chǔ)上進(jìn)行迭代開發(fā):步驟一、創(chuàng)建修改學(xué)生信息彈出對話框;步驟二、實現(xiàn)StudentDao的change方法;步驟三、實現(xiàn)StudentService的change方法;步驟四、實現(xiàn)修改學(xué)生信息的功能。實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框在工程的com.ruanko.rm.gui包中,創(chuàng)建ChangeStudentDialog類,此類繼承于javax.swing.JDialog,通過構(gòu)造方法來實現(xiàn)自定義對話框。(1)在構(gòu)造方法中設(shè)置對話框的位置和大?。?)在構(gòu)造方法中設(shè)置對話框的位置、大小及其他配置publicclassChangeStudentDialogextendsJDialog{
publicChangeStudentDialog(QueryStudentDialogqueryStudentDialog,Studentstudent){//獲得屏幕大小DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();//設(shè)置窗口位置居中以及窗口大小(大小為450×200)this.setBounds((screenSize.width-450)/2,(screenSize.height-200)/2,450,200);//設(shè)置標(biāo)題this.setTitle("修改學(xué)生信息");//設(shè)置窗口布局方式
this.getContentPane().setLayout(newBorderLayout());
this.queryStudentDialog=queryStudentDialog;
}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框2)在QueryStudentDialog中添加雙擊事件,彈出“修改學(xué)生信息”對話框。publicclassQueryStudentDialogextendsJDialog{privateJScrollPanegetResultPane(){resultTable.addMouseListener(newMouseAdapter(){@OverridepublicvoidmouseClicked(MouseEvente){if(e.getClickCount()==2){introw=((JTable)e.getSource()).rowAtPoint(e.getPoint());//獲得行位置Studentstudent=students.get(row);//獲取當(dāng)前行的學(xué)生信息
ChangeStudentDialogchangeStudentDialog=newChangeStudentDialog(QueryStudentDialog.this,student);changeStudentDialog.setModal(true);changeStudentDialog.setVisible(true);}}});}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框3)運行調(diào)試實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框(2)添加對話框的用戶界面組件;1)添加對話框的用戶界面組件——添加主內(nèi)容面板publicclassChangeStudentDialogextendsJDialog{privatefinalString[]gender={"男","女"};//性別組合框選項
privateJTextFieldtextId;//學(xué)生學(xué)號
privateJTextFieldtextName;//學(xué)生姓名
privateJTextFieldtextMobile;//學(xué)生電話
privateJComboBoxcomboGender;//學(xué)生性別publicChangeStudentDialog(){//將內(nèi)容主面板添加到對話框默認(rèn)面板中g(shù)etContentPane().Change(getContentPanel(),BorderLayout.CENTER);}privateJPanelgetContentPanel(){JPanelcontentPanel=newJPanel();//創(chuàng)建內(nèi)容面板
contentPanel.setLayout(newGridLayout(2,2));//設(shè)置面板布局為網(wǎng)格布局returncontentPanel;}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框2)添加對話框的用戶界面組件——在主內(nèi)容面板添加其他組件publicclassChangeStudentDialogextendsJDialog{privateJPanelgetContentPanel(){textId=newJTextField(10);…//創(chuàng)建其他輸入框textId.setEditable(false);comboGender=newJComboBox();for(inti=0;i<gender.length;i++){comboGender.addItem(gender[i]);}//創(chuàng)建性別組合框并添加選項
//添加四行布局面板
contentPanel.add(getRowPanel("學(xué)生學(xué)號:",textId));…//添加其他行布局}privateJPanelgetRowPanel(StringlabelName,JComponentjComponent){JPanelrowPanel=newJPanel();//創(chuàng)建行布局面板
rowPanel.add(newJLabel(labelName));//添加標(biāo)簽
rowPanel.add(jComponent);//添加組件
returnrowPanel;}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框3)添加對話框的用戶界面組件——添加按鈕區(qū)域布局面板publicclassChangeStudentDialogextendsJDialog{privateJButtonbtnChange;//修改按鈕
privateJButtonbtnCancel;//取消按鈕
publicChangeStudentDialog(){//將按鈕面板添加到默認(rèn)面板底部getContentPane().Change(getButtonPanel(),BorderLayout.SOUTH);}privateJPanelgetButtonPanel(){JPanelbuttonPanel=newJPanel();//創(chuàng)建按鈕面板
buttonPanel.setLayout(newFlowLayout(FlowLayout.RIGHT));btnChange=newJButton(“修改”);//創(chuàng)建修改按鈕
btnCancel=newJButton("取消");//創(chuàng)建取消按鈕//將按鈕添加到面板中
buttonPanel.Change(btnChange);buttonPanel.Change(btnCancel);returnbuttonPanel;}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框4)設(shè)置修改學(xué)生信息對話框中輸入框的初始值publicclassChangeStudentDialogextendsJDialog{
publicChangeStudentDialog(){…//設(shè)置輸入框和組合框的初始值setTextField(student);}publicvoidsetTextField(Studentstudent){//設(shè)置輸入框和組合框的值textId.setText(student.getId());textName.setText(student.getName());textMobile.setText(student.getMobile());comboGender.setSelectedItem(student.getGender());}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框5)運行調(diào)試實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框(3)添加事件處理器——修改按鈕事件,獲取輸入框的值并進(jìn)行空值判斷publicclassChangeStudentDialogextendsJDialog{privateJPanelgetButtonPanel(){btnChange.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEventarg0){
//獲取輸入框內(nèi)容
Stringid=textId.getText();Stringname=textName.getText();Stringmobile=textMobile.getText();Stringgender=(String)comboGender.getSelectedItem();if(id!=null&&!id.equals("")&&name!=null&&!name.equals("")&&mobile!=null&&!mobile.equals("")){}else{…//彈出消息對話框
}});returnbuttonPanel;}}實現(xiàn):創(chuàng)建修改學(xué)生信息彈出對話框(3)添加事件處理器——取消按鈕事件publicclassChangeStudentDialogextendsJDialog{privateJPanelgetButtonPanel(){…btnCancel.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEventarg0){ChangeStudentDialog.this.dispose();//移除窗口的關(guān)閉操作
}});returnbuttonPanel;}}實現(xiàn):實現(xiàn)StudentDao的change方法(1)在工程的StudentDao類中,添加change()方法,通過文件IO技術(shù)讀取文檔中的學(xué)生信息。publicclassStudentDao{publicbooleanchange(Studentstudent){booleanflag=false;//定義操作標(biāo)識
String="";//定義文件名
StringBuffertext=newStringBuffer();//定義數(shù)據(jù)文檔可變的字符序列
try{BufferedReaderin=newBufferedReader(newInputStreamReader(new()));Stringline;//讀取文本每行內(nèi)容
while((line=in.readLine())!=null){}//循環(huán)讀取文本in.close();}catch(Exceptione){e.printStackTrace();}returnflag;}}實現(xiàn):實現(xiàn)StudentDao的change方法(2)在工程的StudentDao類的change()方法中,判斷某行信息是否為需要修改的學(xué)生信息,如果是則對其進(jìn)行修改并將信息寫入字符序列中,否則直接將信息寫入字符串序列中。publicclassStudentDao{publicbooleanchange(Studentstudent){try{while((line=in.readLine())!=null){String[]values=line.split("##");//獲取各變量數(shù)據(jù)if(student.getId().equals(values[0])){text.append(student.toString()).append("\n");}else{text.append(line).append("\n");}//若找到待修改的學(xué)生信息則將新的信息寫入}//循環(huán)讀取文本in.close();}catch(Exceptione){e.printStackTrace();}returnflag;}}實現(xiàn):實現(xiàn)StudentDao的change方法(3)在工程的StudentDao類的change()方法中,將字符序列中暫存的所有學(xué)生信息重新寫入文本文件中。publicclassStudentDao{publicbooleanchange(Studentstudent){try{…
//創(chuàng)建printWriter對象PrintWriterpw=newPrintWriter(new());pw.print(text.toString());//將內(nèi)容重新寫入文檔中
pw.flush();//刷新緩存
pw.close();//關(guān)閉PrintWriter
flag=true;}catch(Exceptione){e.printStackTrace();}returnflag;}}實現(xiàn):實現(xiàn)StudentService的change方法在StudentService類中,添加change()方法,使用數(shù)據(jù)訪問層的change()方法修改學(xué)生信息。publicclassStudentService{publicbooleanchange(Studentstudent){booleanflag=false;flag=studentDao.change(student);returnflag;}}實現(xiàn):實現(xiàn)修改學(xué)生信息的功能(1)在ChangeStudentDialog類的“修改”按鈕的監(jiān)聽事件類中,創(chuàng)建Student實體類對象。publicclassChangeStudentDialogextendsJDialog{privateJPanelgetButtonPanel(){…btnChange.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEventarg0){if(…){Studentstudent=newStudent();student.setId(id);student.setName(name);…//對其他屬性值賦值}}});returnbuttonPanel;}}實現(xiàn):實現(xiàn)修改學(xué)生信息的功能(2)調(diào)用StudentService的change()方法來處理修
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年第一季度戰(zhàn)場伏特
- 安全教育演講比賽
- 義烏商品房合同樣本
- 五金配送合同標(biāo)準(zhǔn)文本
- 借款協(xié)議升級合同樣本
- 中標(biāo)書面合同樣本
- 企業(yè)墊資合同標(biāo)準(zhǔn)文本
- 買賣沙居間合同樣本
- 上海智能電器廠房合同標(biāo)準(zhǔn)文本
- 親屬間借款合同標(biāo)準(zhǔn)文本
- 2022年廣東省新高考物理試卷及答案
- 手工滴膠課件完整版
- (現(xiàn)行版)江蘇省建筑與裝飾工程計價定額說明及計算規(guī)則
- 汽輪發(fā)電機組軸系扭振分析與保護(hù)方式研究
- 初三數(shù)學(xué)競賽試題及答案解析
- JJF(紡織)095-2020土工布磨損試驗機校準(zhǔn)規(guī)范
- JJG 384-2002光譜輻射照度標(biāo)準(zhǔn)燈
- 報銷單填寫模板
- 小學(xué)勞動 包餃子課件
- 火力發(fā)電的基本知識課件
- 教師職業(yè)道德第二節(jié)-愛崗敬業(yè)資料課件
評論
0/150
提交評論