版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
./學院Java程序設計課程設計題目:聊天程序學生:Puter學號:6所在院<系>:數(shù)學與計算機學院專業(yè):網(wǎng)絡工程班級:2013級網(wǎng)本指導教師:吳建斌職稱:導師2014年12月31日.學院本科學生課程設計任務書題目聊天程序1、課程設計的目的通過本課程設計使學生能夠較全面的掌握面向對象程序設計的有關概念和開發(fā)方法,以便能較全面地理解、掌握和綜合運用所學的知識,提高自身的編程能力。2、課程設計的容和要求〔包括原始數(shù)據(jù)、技術要求、工作要求等該程序實現(xiàn)聊天功能,包括服務器段程序和客戶端程序。要求:<1>客戶端程序:可連接到服務器,并將消息發(fā)送到服務器端和接受服務器端發(fā)送來的消息。<2>服務器端程序:可將消息發(fā)送到客戶端和接受客戶端發(fā)送來的消息。3、主要參考文獻[1]朱福喜.《Java語言程序設計》〔第二版.科學[2]國君等.《Java程序設計基礎》〔第二版.清華大學[3]Deitel.《Java大學基礎教程》〔第六版.電子工業(yè)[4]MaryCampione.《Java語言導學》〔第四版.機械工業(yè)[5]Y.DanielLiang.《Java語言程序設計基礎篇》〔第六版.機械工業(yè)[6]KathySierra.《HeadFirstJava》〔第二版.東南大學4、課程設計工作進度計劃序號時間〔天容安排備注11分析設計準備周一22編程調(diào)試階段周二至周三31編寫課程設計報告周四41考核周五總計5〔天指導教師〔簽字日期年月日教研室意見:年月日學生〔簽字:接受任務時間:年月日注:任務書由指導教師填寫。課程設計〔論文指導教師成績評定表題目名稱聊天程序評分項目分值得分評價涵工作表現(xiàn)20%01學習態(tài)度6遵守各項紀律,工作刻苦努力,具有良好的科學工作態(tài)度。02科學實踐、調(diào)研7通過實驗、試驗、查閱文獻、深入生產(chǎn)實踐等渠道獲取與課程設計有關的材料。03課題工作量7按期圓滿完成規(guī)定的任務,工作量飽滿。能力水平35%04綜合運用知識的能力10能運用所學知識和技能去發(fā)現(xiàn)與解決實際問題,能正確處理實驗數(shù)據(jù),能對課題進行理論分析,得出有價值的結論。05應用文獻的能力5能獨立查閱相關文獻和從事其他調(diào)研;能提出并較好地論述課題的實施方案;有收集、加工各種信息及獲取新知識的能力。06設計〔實驗能力,方案的設計能力5能正確設計實驗方案,獨立進行裝置安裝、調(diào)試、操作等實驗工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計算及計算機應用能力5具有較強的數(shù)據(jù)運算與處理能力;能運用計算機進行資料搜集、加工、處理和輔助設計等。08對計算或實驗結果的分析能力〔綜合分析能力、技術經(jīng)濟分析能力10具有較強的數(shù)據(jù)收集、分析、處理、綜合的能力。成果質量45%09插圖〔或圖紙質量、篇幅、設計〔論文規(guī)化程度5符合本專業(yè)相關規(guī)或規(guī)定要求;規(guī)化符合本文件第五條要求。10設計說明書〔論文質量30綜述簡練完整,有見解;立論正確,論述充分,結論嚴謹合理;實驗正確,分析處理科學。11創(chuàng)新10對前人工作有改進或突破,或有獨特見解。成績指導教師評語指導教師簽名:年月日.目錄摘要1需求分析1概要設計3三、詳細設計4四、調(diào)試分析4五、結論14六、實驗分工14七、參考文獻14.摘要在網(wǎng)絡越來越發(fā)達的今天,人們對網(wǎng)絡的依賴越來越多,越來越離不開網(wǎng)絡,由此而產(chǎn)生的聊天工具越來越多,例如,國外的ICQ、國騰訊公司開發(fā)的OICQ?;贘ava網(wǎng)絡編程的強大功能,本次畢業(yè)設計使用Java編寫一個聊天系統(tǒng)。一般來說,聊天工具大多數(shù)由客戶端程序和服務器程序外加服務器端用于存放客戶數(shù)據(jù)的數(shù)據(jù)庫組成,本系統(tǒng)采用客戶機/服務器架構模式通過Java提供的Soket類來連接客戶機和服務器并使客戶機和服務器之間相互通信,由于聊天是多點對多點的而Java提供的多線程功能用多線程可完成多點對多點的聊天,數(shù)據(jù)庫管理系統(tǒng)用SQLServer2000完成并通過JDBC-ODBC橋訪問數(shù)據(jù)庫?,F(xiàn)在的各種聊天工具功能越來越強大,但是它們的唯一的不足就是必須要聯(lián)網(wǎng)或者下載到它們的服務端,要不然是沒法脫離Intenet使用的。為了能在一個沒有連接到Intenet的局域網(wǎng)使用聊天工具,那就必須要有服務器端。本系統(tǒng)就是包括服務器端與客戶端,可以在局域網(wǎng)聊天的一個工具。建立在JAVA平臺上,系統(tǒng)的設計使用了面向對象技術和面向對象的設計原則。系統(tǒng)采用C/S結構,客戶端與客戶端以及客戶端與服務器端之間通過Socket傳送消息。使用JAVA語言編寫,開發(fā)工具采用Eclipse。服務器端設計與實現(xiàn)過程中,采用了多線程技術,可以在單個程序當中同時運行多個不同的線程,執(zhí)行不同的任務。大大增強了程序對服務器資源的利用。聊天系統(tǒng)完成后將可進行多人對多人的聊天,對好友進行添加、刪除,對新用戶的注冊,發(fā)送消息、接受消息等等功能。關鍵詞:多線程;客戶機/服務器;JAVA;Socket;Eclipse;TCP/IP.需求分析為了更好的掌握java這門課程的容,同時更好的理解與掌握socket編程,對所有面向對象的編程思想以及編程方法的一個總結、回顧和實踐,掌握Java語言編程技巧。要求使用圖形用戶界面。能實現(xiàn)一個聊天室中多人聊天??梢詢扇怂搅??!蔡崾荆菏褂胹ocket通信程序描述清晰準確,思路清晰,程序能夠實現(xiàn)相應的功能。聊天時系統(tǒng)是通過即時通訊技術來實現(xiàn)在線聊天、交流的軟件。目前有2種架構形式,1、一種是C/S架構,采用客戶端/服務器形式,用戶使用過程中需要下載安裝客戶端軟件,典型的代表有:QQ、百度HI、SkypeQQVSGU、Gtalk、新浪UC、MSN等;2、采用B/S架構,即瀏覽器/服務端形式,這種形式的即時通訊軟件,直接借助互聯(lián)網(wǎng)為媒介、客戶端無需安裝任何軟件,既可以體驗服務器端進行溝通對話,一般運用在電子商務的服務商,典型的代表有Websitelive、53KF、live800等二、概要設計目前國外做聊天系統(tǒng)的公司很多,產(chǎn)品也琳瑯滿目,國有諸如騰訊QQ、新浪UC、網(wǎng)易泡泡等,國外有著名的MSN〔新版改名為LiveMessenger以及跨平臺Gaim等。本人取最具代表性的QQ和MSN進行了一些研究,作為我開發(fā)聊天系統(tǒng)的準備。騰訊無疑是國即時通訊市場的霸主,自從99年進入即時通訊領域并迅速占市場之后,其在國用戶數(shù)量始終高居榜首,即使近幾年面對微軟MSN的強大攻勢,騰訊QQ的時常占有率依然穩(wěn)步增長。騰訊的成功與其對QQ的不斷創(chuàng)新和完善是分不開的。參考了許多網(wǎng)絡上的資料,以及自己通過觀察騰訊QQ運行時的各種細節(jié)??梢源_定騰訊QQ是以多服務器提供服務、服務器總控客戶端、客戶端之間UDP直連通信的。并且在兩個客戶端之間不能建立直連的情況下,才由服務器進行中轉通信。其模型如圖1-1圖1.1詳細設計通過TCP網(wǎng)絡編程,主要編寫有客戶端與服務器端兩個部分,服務器端通過循環(huán)一直從客戶端接收信息,并通過線程實現(xiàn)多個客戶端連接。服務器發(fā)送信息則通過定義鏈表保存客戶端信息。每個客戶端向服務器發(fā)送信息時,則通過鏈表中的所有客戶端的連接而發(fā)送信息給所有客戶端界面從而實現(xiàn)局域網(wǎng)多人聊天。而客戶端則主要是界面的編寫,通過一個線程一直從服務器獲取信息,如果不為空時就在界面上顯示。調(diào)試分析首先運行服務器如圖1.2:圖1.2分析:服務器進入阻塞狀態(tài)。等待連接。主要代碼:package.server;importjava.io.IOException;import.ServerSocket;import.Socket;importjava.util.ArrayList;importjava.util.List;import.server.thread.ThreadServer;publicclassServer{ //服務器功能實現(xiàn) privateServerSocketserver=null; publicstaticList<Socket>list=newArrayList<Socket><>;//定義鏈表儲存客戶信息 privateSocketclient=null; privateintcount=0; publicServer<>{ try{ server=newServerSocket<8888>; //創(chuàng)建服務器 }catch<IOExceptione1>{ e1.printStackTrace<>; } System.out.println<"等待服務器被連接······">; booleanflag=true; while<flag>{ synchronized<this>{ try{ client=server.accept<>; count++; //記錄客戶連接數(shù)目 }catch<IOExceptione1>{ e1.printStackTrace<>; } list.add<client>; System.out.println<"第"+count+"客戶端被連接!">; try{ newThread<newThreadServer<client>>.start<>;//定義線程,實現(xiàn)多個客戶端連接 }catch<Exceptione>{ e.printStackTrace<>; flag=false; } } } try{ server.close<>; }catch<IOExceptione>{ e.printStackTrace<>; } }}package.server.thread;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintStream;import.Socket;importjava.util.Iterator;import.server.util.ListCO;publicclassThreadServerimplementsRunnable{ /定義線程,實現(xiàn)多個客戶端連接 privateBufferedReaderbuf=null; privateSocketclient=null; publicThreadServer<Socketclient>throwsException{ this.client=client; buf=newBufferedReader<newInputStreamReader<this.client.getInputStream<>>>; //連接從客戶端獲取信息 } Override publicvoidrun<>{ //線程 Stringstr=null; booleanf=true; while<f>{ //一直與連接的客戶端通訊 try{ str=buf.readLine<>; }catch<Exceptione>{ f=false; } if<"bye".equals<str>>{ f=false; }else{ ListCOlout=null; try{ lout=newListCO<>; }catch<Exceptione>{ e.printStackTrace<>; } Iterator<PrintStream>iter=lout.getLout<>.iterator<>;//向所有的客戶端發(fā)送信息 while<iter.hasNext<>>{ PrintStreamo=iter.next<>; o.println<str>; } } }}}package.server.util;importjava.io.PrintStream;import.Socket;importjava.util.ArrayList;ator;importjava.util.List;import.server.Server;publicclassListCO{ //保存客戶端的連接 privateList<Socket>list=null; //通過鏈表保存 privateList<PrintStream>lout=null; publicListCO<>throwsException{ this.list=Server.list; lout=newArrayList<PrintStream><>; Iterator<Socket>ilist=list.iterator<>; while<ilist.hasNext<>>{ PrintStreamout=null; Socketc=ilist.next<>; out=newPrintStream<c.getOutputStream<>>; lout.add<out>; } } publicList<PrintStream>getLout<>{ returnlout; } publicvoidsetLout<List<PrintStream>lout>{ this.lout=lout; }}2、客戶端的啟動如圖1.3、圖1.4:圖1.3分析:登錄界面先設置聊天使用的名字圖1.4分析:啟動時先輸入聊天,然后才進入聊天,這樣就可以進行多人聊天了。主要代碼:package.client;importjavax.swing.JFrame;importjavax.swing.JTextArea;importjavax.swing.JLabel;importjavax.swing.JScrollPane;importjava.awt.Color;importjava.awt.Font;importjavax.swing.JTextField;importjavax.swing.JButton;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.io.PrintStream;import.Socket;publicclassclientAPP{ //客戶端界面 privateJFrameframe; privateJTextFieldtextField_1; privateJTextFieldtextField_2=newJTextField<>; privatefinalJTextAreatextArea=newJTextArea<>; JLabellblNewLabel=newJLabel<>; JButtonbtnNewButton2=null; privateSocketclient=null; privatePrintStreamout=null; privateStringname; /** *Launchtheapplication. */ publicstaticvoidmain<String[]args>{ clientAPPwindow=newclientAPP<>; window.startAPP<>; } /** *Createtheapplication. *return */ publicvoidstartAPP<>{ //登錄界面 finalJFramef=newJFrame<"聊天帥名">; f.getContentPane<>.setForeground<Color.GREEN>; f.getContentPane<>.setFont<newFont<"新宋體",Font.BOLD,20>>; f.setBounds<700,320,450,300>; f.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>; f.getContentPane<>.setLayout<null>; JLabellblNewLabel2=newJLabel<"\u8BF7\u8BBE\u7F6E\u4F60\u9017\u540D">; lblNewLabel2.setForeground<Color.RED>; lblNewLabel2.setBackground<Color.RED>; lblNewLabel2.setFont<newFont<"新宋體",Font.BOLD,25>>; lblNewLabel2.setBounds<108,23,226,50>; f.getContentPane<>.add<lblNewLabel2>; textField_2.setForeground<Color.CYAN>; textField_2.setFont<newFont<"新宋體",Font.BOLD,22>>; textField_2.setBounds<130,97,168,41>; f.getContentPane<>.add<textField_2>; textField_2.setColumns<10>; btnNewButton2=newJButton<"\u8FDB\u5165">; btnNewButton2.setFont<newFont<"微軟雅黑",Font.BOLD,30>>; btnNewButton2.setForeground<Color.BLUE>; btnNewButton2.setBounds<145,165,127,41>; f.getContentPane<>.add<btnNewButton2>; f.setVisible<true>; btnNewButton2.addActionListener<newActionListener<>{ Override publicvoidactionPerformed<ActionEvente>{ frame.setVisible<true>; //登錄后才顯示聊天界面 f.setVisible<false>; //隱藏登錄界面 lblNewLabel.setText<"我叫:"+textField_2.getText<>>; } }>; } publicclientAPP<>{ initialize<>; } /** *Initializethecontentsoftheframe. */ privatevoidinitialize<>{ //聊天界面 frame=newJFrame<"逗比聊天室byPuter">; frame.getContentPane<>.setFont<newFont<"楷體",Font.BOLD,18>>; frame.getContentPane<>.setForeground<Color.BLACK>; frame.setForeground<Color.RED>; frame.setTitle<"\u8BA8\u8BBA\u7EC4">; frame.setBounds<450,150,994,631>; frame.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>; frame.getContentPane<>.setLayout<null>; JLabellabel=newJLabel<"\u9017\u6BD4\u804A\u5929\u5BA4">; label.setFont<newFont<"楷體",Font.BOLD,30>>; label.setForeground<Color.RED>; label.setBounds<383,23,186,50>; frame.getContentPane<>.add<label>; JScrollPanescrollPane=newJScrollPane<>; scrollPane.setBounds<246,110,466,332>; frame.getContentPane<>.add<scrollPane>; textArea.setBackground<Color.BLACK>; textArea.setFont<newFont<"楷體",Font.BOLD,17>>; scrollPane.setViewportView<textArea>; textArea.setEnabled<false>; finalJButtonbtnNewButton=newJButton<"\u53D1\u9001">; btnNewButton.setFont<newFont<"宋體",Font.BOLD,15>>; btnNewButton.setForeground<Color.GREEN>; btnNewButton.setBounds<629,484,83,40>; frame.getContentPane<>.add<btnNewButton>; textField_1=newJTextField<>; textField_1.setFont<newFont<"楷體",Font.BOLD,17>>; textField_1.setBounds<246,484,361,40>; frame.getContentPane<>.add<textField_1>; textField_1.setColumns<10>; try{ client=newSocket<"localhost",8888>; }catch<IOExceptione>{ e.printStackTrace<>; } try{ out=newPrintStream<client.getOutputStream<>>; }catch<IOExceptione>{ e.printStackTrace<>; } newThread<newOutInfo<this.textArea,client>>.start<>; //線程時刻刷新聊天界面〔客戶端的精華后面附上 lblNewLabel.setForeground<Color.RED>; lblNewLabel.setFont<newFont<"新宋體",Font.BOLD,24>>; lblNewLabel.setBounds<29,115,180,40>; frame.getContentPane<>.add<lblNewLabel>; if<textField_1.getText<>!=null>{ btnNewButton.addActionListener<newActionListener<>{ Override publicvoidactionPerformed<ActionEvente>{ if<textField_1.getText<>!=null>{ out.println<textField_2.getText<>+"說:"+textField_1.getText<>>; textField_1.setText<"">; } } }>; } }}package.client;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;import.Socket;importjavax.swing.JTextArea;publicclassOutInfoimplementsRunnable{ //客戶端的精華-實現(xiàn)部分 privateJTextAreat=null; //向界面顯示信息 privateSocketclient=null; privateBufferedReaderbuf=null; publicOutInfo<JTextAreat,Socketclient>{ this.t=t; this.client=client; //界面?zhèn)鬟^來實例化 } Override publicvoidrun<>{ //線程 booleanflag=true; Stringstr=null; try{ buf=newBufferedReader<newInputStreamReader<client.getInputStream<>>>; }catch<IOExceptione>{ e.printStackTrace<>; } while<flag>{ //一直監(jiān)聽服務器端口接收信息 synchronized<this>{ try{ str=buf.readLine<>; //接收 }catch<IOExceptione>{ e.printStackTrace<>; } if<str!=null>{ System.out.println<str>; t.append<str+"\n">; //顯示 } } } }}五、結論收貨很多,學會了團隊合作的重要性,也熟悉了業(yè)務開發(fā)流程,更重要的是這是對自己所學的一種總結。詞程序最主要困難的地方就是服務器要發(fā)給所有的客戶端,和客戶端要時刻更新接收到服務器的信息。六、實驗分工分工王科茗、嬌報告書綜合整理和程序測試王科茗制作流程圖和一些資料查找嬌資料查找及任務書的整理王科茗程序查找和調(diào)試及資料整合嬌前端程序的界面部分王科茗后端具體的實現(xiàn)和前端的結合王科茗:55%〔+-5%嬌:45%〔+-5%七、參考文獻[1]朱福喜.《Java語言程序設計》〔第二版.科學[2]國君等.《Java程序設計基礎》〔第二版.清華大學[3]Deitel.《Java大學基礎教程》〔第六版.電子工業(yè)[4]MaryCampione.《Java語言導學》〔第四版.機械工業(yè)[5]Y.DanielLiang.《Java語言程序設計基礎篇》〔第六版.機械工業(yè)[6]KathySierra.《HeadFirstJava》〔第二版.東南大學源代碼〔先啟動服務器才能啟動客戶端,局域網(wǎng)通訊是客戶端的"localhost"改為"服務器所在電腦的IP地址":服務器:package.server;importjava.io.IOException;import.ServerSocket;import.Socket;importjava.util.ArrayList;importjava.util.List;import.server.thread.ThreadServer;publicclassServer{ privateServerSocketserver=null; publicstaticList<Socket>list=newArrayList<Socket><>; privateSocketclient=null; privateintcount=0; publicServer<>{ try{ server=newServerSocket<8888>; }catch<IOExceptione1>{ e1.printStackTrace<>; } System.out.println<"等待服務器被連接······">; booleanflag=true; while<flag>{ synchronized<this>{ try{ client=server.accept<>; count++; }catch<IOExceptione1>{ e1.printStackTrace<>; } list.add<client>; System.out.println<"第"+count+"客戶端被連接!">; try{ newThread<newThreadServer<client>>.start<>; }catch<Exceptione>{ e.printStackTrace<>; flag=false; } } } try{ server.close<>; }catch<IOExceptione>{ e.printStackTrace<>; } }}package.server.start;import.server.Server;publicclassServerStart{publicstaticvoidmain<String[]args>{newServer<>; }}package.server.thread;importjava.io.BufferedReader;importjava.io.InputStreamReader;importjava.io.PrintStream;import.Socket;importjava.util.Iterator;import.server.util.ListCO;publicclassThreadServerimplementsRunnable{ privateBufferedReaderbuf=null; privateSocketclient=null; publicThreadServer<Socketclient>throwsException{ this.client=client; buf=newBufferedReader<newInputStreamReader<this.client.getInputStream<>>>; } Override publicvoidrun<>{ Stringstr=null; booleanf=true; while<f>{ try{ str=buf.readLine<>; }catch<Exceptione>{ f=false; } if<"bye".equals<str>>{ f=false; }else{ ListCOlout=null; try{ lout=newListCO<>; }catch<Exceptione>{ e.printStackTrace<>; } Iterator<PrintStream>iter=lout.getLout<>.iterator<>; while<iter.hasNext<>>{ PrintStreamo=iter.next<>; o.println<str>; } } }}}package.server.util;importjava.io.PrintStream;import.Socket;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;import.server.Server;publicclassListCO{ privateList<Socket>list=null; privateList<PrintStream>lout=null; publicListCO<>throwsException{ this.list=Server.list; lout=newArrayList<PrintStream><>; Iterator<Socket>ilist=list.iterator<>; while<ilist.hasNext<>>{ PrintStreamout=null; Socketc=ilist.next<>; out=newPrintStream<c.getOutputStream<>>; lout.add<out>; } } publicList<PrintStream>getLout<>{ returnlout; } publicvoidsetLout<List<PrintStream>lout>{ this.lout=lout; }}客戶端:package.client;importjavax.swing.JFrame;importjavax.swing.JTextArea;importjavax.swing.JLabel;importjavax.swing.JScrollPane;importjava.awt.Color;importjava.awt.Font;importjavax.swing.JTextField;importjavax.swing.JButton;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.io.PrintStream;import.Socket;publicclassclientAPP{ privateJFrameframe; privateJTextFieldtextField_1; privateJTextFieldtextField_2=newJTextField<>; privatefinalJTextAreatextArea=newJTextArea<>; JLabellblNewLabel=newJLabel<>; JButtonbtnNewButton2=null; privateSocketclient=null; privatePrintStreamout=null; privateStringname; /** *Launchtheapplication. */ publicstaticvoidmain<String[]args>{ clientAPPwindow=newclientAPP<>; window.startAPP<>; } /** *Createtheapplication. *return */ publicvoidstartAPP<>{ finalJFramef=newJFrame<"聊天帥名">; f.getContentPane<>.setForeground<Color.GREEN>; f.getContentPane<>.setFont<newFont<"新宋體",Font.BOLD,20>>; f.setBounds<700,320,450,300>; f.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>; f.getContentPane<>.setLayout<null>; JLabellblNewLabel2=newJLabel<"\u8BF7\u8BBE\u7F6E\u4F60\u9017\u540D">; lblNewLabel2.setForeground<Color.RED>; lblNewLabel2.setBackground<Color.RED>; lblNewLabel2.setFont<newFont<"新宋體",Font.BOLD,25>>; lblNewLabel2.setBounds<108,23,226,50>; f.getContentPane<>.add<lblNewLabel2>; textField_2.setForeground<Color.CYAN>; textField_2.setFont<newFont<"新宋體",Font.BOLD,22>>; textField_2.setBounds<130,97,168,41>; f.getContentPane<>.add<textField_2>; textField_2.setColumns<10>; btnNewButton2=newJButton<"\u8FDB\u5165">; btnNewButton2.setFont<newFont<"微軟雅黑",Font.BOLD,30>>; btnNewButton2.setForeground<Color.BLUE>; btnNewButton2.setBounds<145,165,127,41>; f.getContentPane<>.add<btnNewButton2>; f.setVisible<true>; btnNewButton2.addActionListener<newActionListener<>{ Override publicvoidactionPerformed<ActionEvente>{ frame.setVisible<true>; f.setVisible<false>; lblNewLabel.setText<"我叫:"+textField_2.getText<>>; } }>; } publicclientAPP<>{ initialize<>; } /** *Initializethecontentsoftheframe. */ privatevoidinitialize<>{ frame=newJFrame<"逗比聊天室byPuter">; frame.getContentPane<>.setFont<newFont<"楷體",Font.BOLD,18>>; frame.getContentPane<>.setForeground<Color.BLACK>; frame.setForeground<Color.RED>; frame.setTitle<"\u8BA8\u8BBA\u7EC4">; frame.setBounds<450,150,994,631>; frame.setDefaultCloseOperation<JFrame.EXIT_ON_CLOSE>; frame.getContentPane<>.setLayout<null>; JLabellabel=newJLabel<"\u9017\u6BD4\u804A\u5929\u5BA4">; label.setFont<newFont<"楷體",Font.BOLD,30>>; label.setForeground<Color.RED>; label.setBounds<383,23,186,50>; frame.getContentPane<>.add<label>; JScrollPanescrollPane=newJScrollPane<>; scrollPane.setBounds<246,110,466,332>; frame.getContentPane<>.add<scrollPane>; textArea.setBackground<Color.BLACK>; textArea.setFont<newFont<"楷體",Font.BOLD,17>>; scrollPane.setViewportView<textArea>; textArea.setEnabled<false>; finalJButtonbtnNewButton=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度離婚協(xié)議財產(chǎn)分割及子女撫養(yǎng)權協(xié)商書15篇
- 2024年度擔保公司業(yè)務拓展合作協(xié)議3篇
- 2024年度農(nóng)產(chǎn)品加工區(qū)域代理合作協(xié)議3篇
- 2024年度幼兒園園長全面管理聘用合同范本3篇
- 2024停車場智能化改造與運營維護綜合合同3篇
- 2024醫(yī)療保健機構內(nèi)部審計與風險管理合同3篇
- 2024年二零二四年度農(nóng)業(yè)種子安全檢測與風險評估合同3篇
- 2024年度擔保業(yè)務操作規(guī)范合同3篇
- 2024年度能源單位勞務派遣勞動合同(含環(huán)保責任)3篇
- 2024年度特色旅游演出項目合作合同3篇
- 期末素養(yǎng)展示-2024-2025學年語文三年級上冊統(tǒng)編版
- 2024中華人民共和國學前教育法學習解讀課件
- 蒸鍍機基礎知識單選題100道及答案解析
- 2024年秋新人教PEP版3年級上冊英語教學課件 Unit 4 第4課時 Part B Let's talk
- 私募股權基金公司的賬務處理-記賬實操
- 期末模擬考試卷01-2024-2025學年上學期高二思想政治課《哲學與人生》原題卷+答案卷
- 沙金礦承包開采合作協(xié)議書范文
- 英語四級模擬試題(附答案)
- 2024智慧城市數(shù)據(jù)分類標準規(guī)范
- 文玩交易合同(2篇)
- 智研咨詢發(fā)布-2024年中國牛油果行業(yè)現(xiàn)狀、發(fā)展環(huán)境及投資前景分析報告
評論
0/150
提交評論