修改學(xué)生信息迭代開發(fā)過程文檔_第1頁
修改學(xué)生信息迭代開發(fā)過程文檔_第2頁
修改學(xué)生信息迭代開發(fā)過程文檔_第3頁
修改學(xué)生信息迭代開發(fā)過程文檔_第4頁
修改學(xué)生信息迭代開發(fā)過程文檔_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論