版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
南京信息職業(yè)技術(shù)學(xué)院·計算機(jī)與軟件學(xué)院·移動應(yīng)用開發(fā)JAVA綜合實(shí)訓(xùn)報告PAGE20實(shí)訓(xùn)報告(2010/2011學(xué)年第一學(xué)期)實(shí)習(xí)名稱JAVA綜合實(shí)訓(xùn)班級90916P29姓名劉潮指導(dǎo)老師初耀軍日期2010年1月3日目錄第一章需求分析 31.1服務(wù)器端需求分析 31.2客戶端需求分析 4第二章設(shè)計重點(diǎn) 82.1設(shè)計思路 82.2具體設(shè)計 82.3問題解決 20第三章測試 21第四章期望與體會 23參考資料 23需求分析1.1服務(wù)器端需求分析當(dāng)運(yùn)行服務(wù)器端程序時服務(wù)器的界面,如圖1-1所示:圖1-1當(dāng)點(diǎn)擊“啟動服務(wù)”按鈕后服務(wù)器的界面如圖1-2所示,在JTextPane區(qū)域能夠顯示服務(wù)器已經(jīng)正常啟動的消息:圖1-2當(dāng)在“在此發(fā)送系統(tǒng)消息”區(qū)域輸入信息并點(diǎn)擊回車鍵時,在JTextPane區(qū)域能夠顯示發(fā)送的系統(tǒng)消息,如圖1-3所示:圖1-3當(dāng)點(diǎn)擊“停止服務(wù)”按鈕后服務(wù)器的界面,在JTextPane區(qū)域能夠顯示服務(wù)器已經(jīng)停止的消息,而且彈出對話框提示:您已經(jīng)關(guān)閉了偵聽套接字?。∪鐖D1-4所示:圖1-4點(diǎn)擊“確定”按鈕后如圖1-5所示:圖1-51.2客戶端需求分析客戶端客戶登陸的界面,如圖1-6所示:圖1-6當(dāng)用戶輸入用戶名和密碼并選擇登陸方式后,點(diǎn)擊“確定”按鈕,如圖1-7。如果密碼或用戶名有錯誤時,將會彈出對話框提醒用戶,如圖1-8所示:圖1-7圖1-8當(dāng)過客點(diǎn)擊登陸按鈕后在服務(wù)器端將顯示過客上線的消息,如圖1-9所示圖1-9當(dāng)用戶輸入用戶名和密碼都正確時,點(diǎn)擊以會員的方式登陸后,先出現(xiàn)的界面如圖1-10所示,然后出現(xiàn)的是會員界面,如圖1-11所示圖1-10圖1-11選擇管理員,如圖1-12所示。圖1-12確定后,見圖1-13所示:圖1-13我們可以在第一個文本區(qū)域內(nèi)輸入管理員的名稱,也可以對第一個進(jìn)行選擇發(fā)送的對象,以及點(diǎn)擊“悄悄話”單選框發(fā)送給自己的消息,我們選擇生氣的,輸入管理員名稱,如圖1-14所示:圖1-14第二章設(shè)計重點(diǎn)2.1設(shè)計思路(1)首先在服務(wù)器端應(yīng)該有啟動線程用來啟動服務(wù)器,并且要有監(jiān)聽線程,只要有用戶上線或發(fā)送聊天信息,在服務(wù)器端都應(yīng)該能夠看到。在服務(wù)器端還應(yīng)該有接收客戶端消息的線程,此線程需要接受客戶端發(fā)來的信息,并對該信息進(jìn)行分析,執(zhí)行相應(yīng)的請求。(2)在客戶端應(yīng)該有用戶接收線程用于接收用戶發(fā)送的消息,圖片,表情。(3)在客戶端還應(yīng)該有會員客戶端類,供會員登陸聊天,并且有會員接收線程。(4)對于服務(wù)器應(yīng)該有管理員對其進(jìn)行管理,所以應(yīng)該有管理員客戶端類,同樣在管理員客戶端也要有管理員接收線程,當(dāng)管理員登陸時能夠及時響應(yīng)其請求。(5)在過客類中應(yīng)該有接收消息的進(jìn)程用來接收服務(wù)器端發(fā)來的消息。2.2具體設(shè)計第一步創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫,創(chuàng)建一張member表,包含兩個字段username和password,并且這兩個字段都不能為空,創(chuàng)建一張Admin表,也包含兩個字段username和password,并且這兩個字段也都不能為空,分別為表添加幾條記錄,代表不同用戶。啟動Access2003,新建空數(shù)據(jù)庫表,命名為java,選擇“使用設(shè)計器創(chuàng)建表”然后在表里添加username和password字段,添加幾條記錄。最后保存表。打開“控制面板”打開“管理工具”,然后選擇“數(shù)據(jù)源(ODBC)”,在彈出的對話框中選擇“添加”然后選擇“DriverdoMicrosoftAccess(*mdb)”點(diǎn)擊完成按鈕。在對話框中輸入數(shù)據(jù)源名稱“l(fā)iuchao”,然后選擇數(shù)據(jù)庫,選中剛剛在Access2003中新建的表,確定。第二步界面的搭建2.2.1服務(wù)器端界面設(shè)計需要的基本控件如下:finalJScrollPaneliuchaotscroll=newJScrollPane();finalJPanelpanel=newJPanel();finalJTextPaneliuchaotextPane=newJTextPane();final JTextFieldliuchaosystemmeg=newJTextField();finalJButtonliuchaostopserver=newJButton();finalJButtonliuchaostartserver=newJButton();2.2.2管理員客戶端界面設(shè)計其基本布局需要的控件如下:finalJButtonliuchaomessageNote=newJButton();finalJButtonliuchaologin=newJButton();finalJButtonliuchaosendMeg=newJButton();finalJButtonliuchaologout=newJButton();finalJButtonliuchaoexit=newJButton();finalJButtonliuchaohideNote=newJButton();finalJTextPaneliuchaoreceiveMeg=newJTextPane();finalJCheckBoxliuchaostatusCheckBox=newJCheckBox();finalJScrollPaneliuchaosendMegScrollPane=newJScrollPane();finalJPanelliuchaootherPane=newJPanel();finalJSplitPanesplitPane=newJSplitPane();finalJScrollPanejTreeScrollPane=newJScrollPane();finalJScrollPanereceiveMegScrollPane=newJScrollPane();2.2.3會員客戶端界面設(shè)計其基本布局需要的控件如下:finalJButtonliuchaohideLogin=newJButton();finalJButtonliuchaosendMeg=newJButton();finalJButtonliuchaologout=newJButton();finalJButtonliuchaoexit=newJButton();finalJButtonliuchaomessageNote=newJButton();finalJButtonliuchaohideNote=newJButton();finalJCheckBoxliuchaostatusCheckBox=newJCheckBox();finalJScrollPaneliuchaosendMegScrollPane=newJScrollPane();finalJScrollPanereceiveMegScrollPane=newJScrollPane();2.2.4過客類界面設(shè)計其基本布局需要的控件如下:finalJComboBoxliuchaouserOnlineList=newJComboBox();finalJComboBoxliuchaoactionList=newJComboBox();finalJButtonliuchaologout=newJButton();finalJPanelliuchaootherPane=newJPanel();finalJScrollPaneliuchaoreceiveMegScrollPane=newJScrollPane();2.2.5用戶登錄界面設(shè)計其基本布局需要的控件如下:finalJButtonliuchaologinButton=newJButton();finalJButtonliuchaoexitButton=newJButton();finalJRadioButtonloginStyle=newJRadioButton();finalJLabelliuchaoUnLabel=newJLabel();finalJLabelliuchaopwLabel=newJLabel();第三步添加類和函數(shù) 2.2.6服務(wù)器端的類和函數(shù)(1)創(chuàng)建用戶信息類SingleUserMegData在server包下創(chuàng)建SingleUserMegData類,此類用來描述單個用戶的信息,包括:用戶名,套接字,輸入流輸出流等。服務(wù)端每次接受一個用戶成功登陸,便會為這個用戶窗口一個SingleUserMegData對象,其中存儲該用戶的信息。并把所有用戶的SingleUserMegData對象組成一個列表,作為查詢的依據(jù)。類包括下面5個成員變量,以及它們的get和set方法,用于存取這些變量:publicclassliuchaoSingleUserMegData{StringuserName,msg;Socketsocket=null;ObjectInputStreamdataIn=null;SingleUserMegDatanextID=null;}(2)創(chuàng)建類MyTextPane繼承于JTextPanel,為其添加文本方法append,它的功能是取文檔共享的默認(rèn)AttributeContext,將該屬性添加到給定的集合中屬性,并返回新的有代表性的集合。將滾動條自動拉到JTextArea最底端,將屬性應(yīng)用于字符內(nèi)容。再用給定字符串所表示的新內(nèi)容替換當(dāng)前選定的內(nèi)容。為其添加方法append,其功能為將滾動條自動拉到JTextArea最底端,將屬性應(yīng)用于字符內(nèi)容。再用給定字符串所表示的新內(nèi)容替換當(dāng)前選定的內(nèi)容。(3)用戶信息鏈表類UserInfoList,用戶信息鏈表類要實(shí)現(xiàn)對用戶信息的添加刪除和查詢的功能,如果用戶離開了,就將存儲在服務(wù)器端的用戶信息刪除,同時如果有用戶上線,也能夠在服務(wù)器端添加用戶信息。戶信息鏈表類的查找功能可以分為按名字查找和單用戶信息數(shù)據(jù)查找。用戶信息鏈表類聲明的全局量: privateSingleUserMegDataroot,rootID; privateSingleUserMegDatapointer; privateintuserCount;構(gòu)造方法UserInfoList算法:用空參數(shù)創(chuàng)建SingleUserMegData,賦值給root;用空參數(shù)創(chuàng)建SingleUserMegData,賦值給rootID;使root的next為空;使rootID的nextID為空;使pointer為空;(4)接收客戶端信息類ServerReceiveThread(5)服務(wù)器偵聽類ServerListenThread類的實(shí)現(xiàn)。①在server包下創(chuàng)建ServerListenThread類,讓其繼承ThreadpublicclassServerListenThreadextendsThread{}②為ServerListenThread類添加函數(shù)startListen。③為ServerListenThread類添加發(fā)送數(shù)據(jù)方法sendObject④為ServerListenThread類添加run函數(shù)如下publicvoidrun(){ startListen(); }該類用來驗證客戶端傳來的用戶名和密碼是否在服務(wù)器端的數(shù)據(jù)庫中存在,如果存在表示為合法用戶,準(zhǔn)予登陸;如果不存在,表示無此用戶,不準(zhǔn)登陸。如果是合法用戶登錄,還要將該用戶的信息對象SingleUserMegData加入列表userInfoList中,同時在服務(wù)器界面的下拉框中增加該用戶的名字。2.2.7管理員客戶端的類和函數(shù)(1)為管理員客戶端添加界面布局IMPanelAdminClient類。①為“登陸”按鈕添加事件監(jiān)聽器,當(dāng)用戶點(diǎn)擊“登陸”按鈕后,立刻連接服務(wù)器并到指定的端口,然后設(shè)置“登陸”按鈕的狀態(tài)為假,即此刻如果用戶沒有下線就不能使用此按鈕,設(shè)置“發(fā)送”按鈕、“離線”按鈕和“退出”按鈕的狀態(tài)為真,即用戶可以使用這三個按鈕。②為IMPanelAdminClient類添加連接到服務(wù)器的方法connect。首先獲取服務(wù)器的IP地址和端口號然后建立客戶端套接字并獲取套接字的數(shù)據(jù)輸出流和數(shù)據(jù)輸入流。創(chuàng)建一個新的客戶接收線程并利用參(clientSocket,dataOut,dataIn,receiveMeg,userOnlineList,getSendMeg(),geminate(),getSendMegTextField())向該線程發(fā)送數(shù)據(jù)。然后啟動該監(jiān)聽線程。③為“發(fā)送”按鈕添加事件監(jiān)聽器算法:設(shè)置sendMeg的偵聽,并偵聽:{如果clientSocket為空,返回;如果clientSocket.isClosed()為假,則:{設(shè)置各個按鈕的狀態(tài):調(diào)用sendMessage函數(shù),向所有用戶發(fā)送消息;設(shè)定sendMegTextField為空;}否則{返回}}④為“退出”按鈕添加事件監(jiān)聽器,如果偵聽到套接字已經(jīng)關(guān)閉,直接退出。如果套接字沒有關(guān)閉或者服務(wù)器沒有關(guān)閉,說明用戶已經(jīng)下線。(2)為管理員客戶端添加接收線程的AdminClientReceiveThread類publicclassAdminClientReceiveThreadextendsThread{}在管理員接收線程類AdminClientReceiveThread中應(yīng)該包含如下函數(shù):①線程的運(yùn)行方法runpublicvoidrun(){recevThread();}接收線程的函數(shù)recevThread。主要用來讀取服務(wù)器發(fā)送過來的聊天消息并處理。具體實(shí)現(xiàn)代碼如下:publicvoidrecevThread(){ while(!isStop&&!liuchaoclientSocket.isClosed()){ try{//讀取服務(wù)器發(fā)送過來的聊天信息 StringmegType=(String)dataIn.readObject(); if(megType.equalsIgnoreCase("系統(tǒng)信息")){//處理系統(tǒng)信息 StringsystemMeg=(String)dataIn.readObject(); liuchaoreceiveMeg.setText("[系統(tǒng)信息]"); liuchaoreceiveMeg.setText(systemMeg); mn.liuchaogetMegNote().setText("[系統(tǒng)消息]"+systemMeg); //自動下滾receiveMeg.setCaretPosition(liuchaoreceiveMeg.getDocument().getLength());}(3)為管理員客戶端添加聊天記錄類MessageNote,方便管理員觀看自己的聊天記錄,由自己決定是否保存聊天記錄。①為“清除”按鈕添加事件監(jiān)聽器clear.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){如果clear為空null,則clear為JButton();設(shè)置clear的文本為clear;為clear添加偵聽,點(diǎn)擊clear,geminate()的文本設(shè)置為空字符串;}});2.2.8會員客戶端的類和函數(shù)(1)為會員客戶端添加界面布局IMPanelClient類。(2)當(dāng)會員關(guān)閉聊天窗口時在服務(wù)器端應(yīng)該斷開與會員的連接,釋放其占有的資源,因此需要為IMPanelClient類添加窗口關(guān)閉事件,保證窗口關(guān)閉時,關(guān)閉和服務(wù)器端的連接。(3)為Client添加聊天用戶接收線程類ClientReceiveThreadPublicclassClientReceiveThreadextendsThread{}在用戶接收線程類ClientReceiveThread中應(yīng)該包含如下函數(shù):接收消息的方法recevMsg,能夠接收用戶名,表情,聊天對象,接收信息的發(fā)送日期。增加對于聊天消息的判斷。if(megType.equalsIgnoreCase("聊天信息")){
接收消息顯示在文本區(qū)域中}elseif(megType.equalsIgnoreCase("用戶列表")){已實(shí)現(xiàn)}(4)為IMPanelClient類添加連接到服務(wù)器的方法connect,其算法和管理員客戶端的connect方法類似。(5)會員的聊天信息應(yīng)該由會員自己選擇是否保存,因此需要為會員客戶端添加MessageNote類,在該類中應(yīng)該包含兩個按鈕“保存”和“清除”,其按鈕的監(jiān)聽事件和管理員客戶端的一樣。(6)為“登陸”按鈕添加監(jiān)聽事件,當(dāng)用戶點(diǎn)擊“登陸”按鈕后,用戶能夠登陸服務(wù)器。login.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){try{調(diào)用connect函數(shù)登陸到指定的服務(wù)器并定位到指定的端口號,設(shè)定各個按鈕的狀態(tài);使聊天記錄為可見;}catch(IOExceptione1){e1.printStackTrace();}} });(7)為“發(fā)送”信息按鈕添加監(jiān)聽事件,當(dāng)用戶點(diǎn)擊按鈕后用戶可以向其他用戶發(fā)送聊天信息。該按鈕的功能和管理員客戶端的類似。(8)為IMPanelClient類添加接收消息方法receiveMeg,當(dāng)其他用戶發(fā)送聊天消息或管理員發(fā)送系統(tǒng)消息時在TextPanel區(qū)域可以顯示。該函數(shù)返回的參數(shù)類型是MyTextPane類型如果(receiveMeg==null)為真,就創(chuàng)建空參數(shù)MyTextPane,并賦值給receiveMeg;然后利用setCursor為receiveMeg設(shè)置鼠標(biāo)形狀(newCursor(Cursor.TEXT_CURSOR))并偵聽鼠標(biāo),對鼠標(biāo)的每一個動作都能響應(yīng),例如:鼠標(biāo)單擊,鼠標(biāo)按下,鼠標(biāo)釋放,鼠標(biāo)進(jìn)入,鼠標(biāo)退出。(9)為“隱身登陸“按鈕添加監(jiān)聽事件,用戶不想讓其他人看到自己在線時點(diǎn)擊此按鈕,但是他并沒有離線,而是隱藏起來,他仍然占用系統(tǒng)資源。hideLogin.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){try{獲取隱藏登錄帳號賦值給整型量count,初始化隨機(jī)函數(shù);連接到connect("服務(wù)器的IP",服務(wù)器的端口號);利用writeObject為dataOut輸出("匿名用戶"+count);利用flush刷新dataOut;"匿名用戶"+count賦值給yourHideLoginName;利用setEnabled使hideNote使能為真;利用setEnabled使mn使能為真;利用setText為userName設(shè)置文本為空字符串"";以上出現(xiàn)異常,則{顯示JOptionPane.showMessageDialog(null,"匿名登陸失?。。?,"系統(tǒng)警告",JOptionPane.WARNING_MESSAGE);}}}(10)為“離線”按鈕添加監(jiān)聽事件,用戶點(diǎn)擊此按鈕后立即離開,但是他并沒有關(guān)閉對話框,只要他點(diǎn)擊登陸按鈕就可以上線。logout.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){if(liuchaoclientSocket==null){ return; } liuchaologin.setEnabled(true); liuchaosendMeg.setEnabled(false); liuchaoexit.setEnabled(true); liuchaohideNote.setEnabled(false); liuchaomessageNote.setEnabled(true); liuchaomn.setVisible(false); if(liuchaoclientSocket.isClosed()){ JOptionPane.showMessageDialog(null,"客戶端套接字已經(jīng)關(guān)閉?。?+"請退出", "系統(tǒng)警告",JOptionPane.ERROR_MESSAGE); liuchaoClientReceiveThread.isStop=true; }elseif(!liuchaoclientSocket.isClosed()){ try{ liuchaodataOut.writeObject("用戶下線"); liuchaoClientReceiveThread.isStop=true; liuchaouserOnlineList.removeAllItems(); }catch(IOExceptionex){ ex.printStackTrace(); } } } });2.2.9過客類和函數(shù)(1)為過客添加界面布局IMGuestClient類。(2)為Guest添加聊天用戶接收線程類ClientReceiveThreadpublicclassClientReceiveThreadextendsThread{}在用戶接收線程類ClientReceiveThread中應(yīng)該包含如下函數(shù):線程的運(yùn)行方法runpublicvoidrun(){recevThread();}接收線程的函數(shù)recevThread。接收消息的方法recevMsg,能夠接收用戶名,表情,聊天對象,接收信息的發(fā)送日期。增加對于聊天消息的判斷。只給出了部分代碼。publicvoidrecevThread(){//若套接字沒有關(guān)閉,則???直執(zhí)行循環(huán)體while(!isStop&&!clientSocket.isClosed()){try{StringmegType=(String)receiveMeg.readObject();if(megType.equalsIgnoreCase("系統(tǒng)信息")){//處理系統(tǒng)信息StringsystemMeg=(String)receiveMeg.readObject();textPaneUp.setText(textPaneUp.getText()+"[系統(tǒng)信息]"+systemMeg);}elseif(megType.equalsIgnoreCase("服務(wù)器關(guān)閉")){clientSocket.close();textPaneUp.setText(textPaneUp+"股務(wù)器已經(jīng)關(guān)閉!!!"+"\n");break;}elseif(megType.equalsIgnoreCase("聊天信息")){//接受聊天信息 }}(3)為“登陸”按鈕添加監(jiān)聽事件,當(dāng)用戶點(diǎn)擊“登陸”按鈕后,用戶能夠登陸服務(wù)器。該函數(shù)的實(shí)現(xiàn)與管理員客戶端和會員客戶端的“登陸”按鈕實(shí)現(xiàn)有一線不同,但是也沒有太大的區(qū)別,既然用戶以過客的身份登陸服務(wù)器聊天,服務(wù)器端既不知道用戶的姓名也沒有用戶的相關(guān)資料,所以服務(wù)器只能通過獲取用戶所用機(jī)器的IP地址來通知其他用戶,該過客已經(jīng)上線聊天了。其代碼實(shí)現(xiàn)如下:login.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ InetAddressguestIP=null; try{ connect("localhost",6544); dataOut.writeObject("過客"+guestIP.getHostAddress().toString()); dataOut.flush(); liuchaologin.setEnabled(false); liuchaosend.setEnabled(true); }catch(IOExceptionex){ ex.toString(); } } });(4)為“發(fā)送”信息按鈕添加監(jiān)聽事件,當(dāng)用戶點(diǎn)擊按鈕后用戶可以向其他用戶發(fā)送聊天信息。它通過調(diào)用sendMessage()函數(shù)就可以向所有在線用戶發(fā)送聊天消息。(5)為“離線”按鈕添加監(jiān)聽事件,用戶點(diǎn)擊此按鈕后立即離開,但是他并沒有關(guān)閉對話框,只要他點(diǎn)擊登陸按鈕就可以上線。用戶離線后,其“登陸”按鈕和“退出”按鈕的狀態(tài)就應(yīng)該為真,而“離線”按鈕和“發(fā)送”按鈕的狀態(tài)就應(yīng)該為假。(6)為“退出”按鈕添加監(jiān)聽事件,當(dāng)用戶點(diǎn)擊“退出”按鈕后,立刻釋放占用的系統(tǒng)資源,與離線不同的是,此時用戶已經(jīng)關(guān)閉對話框,用戶要想重新登陸就必須再運(yùn)行一次程序。它主要就是監(jiān)聽客戶端套接字,如果套接字已經(jīng)關(guān)閉,則立刻退出,如果套接字沒有關(guān)閉,則發(fā)送用戶下線消息。 2.2.10用戶登陸類和函數(shù)(1)為登陸界面添加登陸類UserLogin.publicclassUserLoginextendsJFrameimplementsActionListener{}(2)為“確定”和“退出”按鈕添加事件監(jiān)聽器,“確定”按鈕的監(jiān)聽事件主要是先從文本框中取得用戶輸入的用戶名賦值給一個變量,然后再從密碼框中取得用戶輸入的碼再賦值給另一個變量。創(chuàng)建一個UserLogining對象,將獲得的密碼和用戶名通過isLogin函數(shù)賦值給該變量,如果判斷為真則關(guān)閉當(dāng)前登錄窗口允許用戶接入服務(wù)器,否則彈出對話框,提示用戶用戶名錯誤或密碼錯誤。(3)為登陸界面添加程序啟動畫面類StartSplash,當(dāng)用戶輸入的密碼和用戶名都正確時并且以會員的身份登陸服務(wù)器,點(diǎn)擊確定按鈕后會彈出啟動畫面,顯示進(jìn)度,以提示會員此時正在登錄中,請不要著急。申明的全局變量如下所示:ThreadsplashThread=null;privateImageIconliuchaoicon;JLabelliuchaopicture=newJLabel();FinalJpanelliuchaopanel=newJpanel();(4)為登陸界面添加UserLogining類,該類用來向服務(wù)器端發(fā)送用戶輸入的用戶名和密碼,接收服務(wù)器端傳來的驗證結(jié)果。為UserLogining添加函數(shù)isLogin如下,該函數(shù)向服務(wù)器端發(fā)送用戶名和密碼,接收返回的驗證結(jié)果,驗證通過返回true,失敗返回false。部分代碼如下:publicclassUserLogining{
publicbooleanisLogin(StringuserName,Stringpassword){if(userName.equals(“user”)){returntrue;}else{returnfalse;}}}2.3問題解決2.3.1遇到的問題在設(shè)計過程中我遇到的問題如下:(1)數(shù)據(jù)庫創(chuàng)建過程中添加表不會添加(2)數(shù)據(jù)庫連接老不成功,對數(shù)據(jù)源的創(chuàng)建和驅(qū)動程序的加載比較陌生。(3)對于界面布局設(shè)計器里的控件不是很熟悉,需要參照老師給的材料才能做。(4)線程的使用感覺很陌生,不知道何時該創(chuàng)建線程,該創(chuàng)建什么樣的線程,在什么地方調(diào)用該線程。(5)在聊天過程中如何使用戶可以發(fā)送圖片和表情,我還沒有實(shí)現(xiàn)。2.3.2解決問題的辦法(1)將以前學(xué)習(xí)過的與Java相關(guān)的資料再復(fù)習(xí)一
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小班數(shù)學(xué)活動方案策劃(5篇)
- 清邊機(jī)安全操作規(guī)程模版(3篇)
- 項目環(huán)境保護(hù)管理制度范文(2篇)
- 地面變電工安全操作規(guī)程模版(2篇)
- 畜牧機(jī)關(guān)作風(fēng)建設(shè)實(shí)施方案(2篇)
- 二零二五年度農(nóng)村住房建設(shè)項目節(jié)能改造合同
- 2025年度精裝公寓紙質(zhì)版租賃合同文本3篇
- 2025車子買賣合同范本
- 2025預(yù)拌混凝土技術(shù)合同
- 二零二五年度保險公司與環(huán)保產(chǎn)業(yè)風(fēng)險共擔(dān)合同3篇
- 中華人民共和國精神衛(wèi)生法課件
- 2004式警車外觀制式涂裝規(guī)范
- 長距離輸氣管線工藝設(shè)計方案
- 《銷售管理實(shí)務(wù)》ppt課件匯總(完整版)
- 房屋無償使用協(xié)議書(8篇)
- 中央銀行理論與實(shí)務(wù)期末復(fù)習(xí)題
- 國家開放大學(xué)電大本科《國際私法》案例題題庫及答案(b試卷號:1020)
- 喜慶中國節(jié)春節(jié)習(xí)俗文化PPT模板
- 測井儀器設(shè)計規(guī)范--電子設(shè)計
- 用特征方程求數(shù)列的通項
- 素材庫管理系統(tǒng)架構(gòu)(共13頁)
評論
0/150
提交評論