當前位置:
首頁 > 知識 > 這個Java程序如果你能寫出來,找不到工作來找我!

這個Java程序如果你能寫出來,找不到工作來找我!


今天再給大家帶來一個重頭戲


詳細給大家講解一下如何用Java開發騰訊聊天程序


效果絕對震撼,可自行測試


正題:Java開發騰訊聊天程序(Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、Java代碼、)


流程:我打算從好多個點為大家仔細解析一下這個Java程序的開發思路和實現過程

1.Awt/Swing 包製作的聊天界面(全部用Java代碼實現)


一個java窗體的大致流程:窗體(Frame)――容器(Container)――(設置容器布局)――面板 (Panel)――(設置面板布局)――控制項


登陸界面Java代碼


import java.awt.*;


import javax.swing.*;


class wyMain extends JFrame {


JTextField tsend; //在外部聲明文本框,用來寫留言


JComboBox clist; //聲明下拉列表框,用來羅列在線用戶


JTextArea ta; //聲明大型文本區,用來顯示聊天記錄


wyMain(String title)

{


super(title); //訪問父類


JFrame 的構造函數,為窗體實現標題


this.setSize(400,300); //窗體為 400 寬,300 高


this.setLocation(150,250);


Container con=this.getContentPane();


con.setLayout(new BorderLayout()); //設置窗體布局為 BorderLayout


JPanel pp=new JPanel();


JPanel p1=new JPanel();


JPanel p2=new JPanel();

ta=new JTextArea(); //實例化大型文本區


ta.disable(); //設置只讀屬性


pp.setLayout(new GridLayout(2,1)); //把 pp 設成[2,1]格式的網格布局


pp.add(p1); //在(1,1)單元格放 p1


pp.add(p2); //在(2,1)單元格放 p2


con.add(p,BorderLayout.NORTH); // Container 把 pp 放在窗體北邊 con.add(ta,BorderLayout.CENTER);


//Container 把文本區放在中間部位,讓它能擁有足夠的空間


JLabel l1=new JLabel("留言:");


JLabel l2=new JLabel("To:");


tsend=new JTextField(30); //實例化文本框

clist=new JComboBox(); //實例化下拉列表框


JButton bSend=new JButton("Send");


p1.add(l1);


p1.add(tsend);


p2.add(l2);


p2.add(clist);


p2.add(bSend);


clist.addItem("所有人"); //下拉列表框添加一項內容


}


}

我們現在有了一個叫做「主界面」的 java類,我們給這個類加上主函數再運 行:


public static void main(String args[]){


wyMain wm=new wyMain(「聊天窗口」);


wm.show();


}


3.添加事件


我們的聊天程序現在已經有了界面了,但是我們必須想法子讓界面上的控制項能 夠實現它的具體功能,


不然的話界面再漂亮也是毫無意義的。於是我們需要為 窗體定義一些事件。



這個Java程序如果你能寫出來,找不到工作來找我!


設立事件監聽器:拿上面的例子來說,人的皮膚就是負責監聽事件傳來消息的監聽器 。在java中,事件監聽器就是一個介面。 我們如果想讓窗體對一種事件做出響應,我們就必須為窗體植上「皮 膚」—— 設立監聽器。


為了登錄功能能夠實現,我們現在在 wyClient 中設立按鈕事件的監聽 器。(Java代碼)


監聽器弄好之後,聊天的界面基本就完成了


I/O 操作(聊天記錄)


我們在上個章節實現了程序的界面,包括像布局、事件、控制項、容器等不 可或缺的基本因素。這時我們會發現一個問題:不論如何在界面中發送信息, 關閉程序後再打開,所有的消息都會清空掉。因為這時我們的程序根本就是重 新創建的,原來的變數控制項都已經不存在了。 這時我們需要再寫一段代碼,把輸入過的留言都寫到一個文件中。在java中操作文件需要用到輸入流和輸出流。我們需要在程序中導入java.io.*工具 包。包中放的是一組流類。


這裡我們只簡單講解一下位元組輸入流(FileInputStream )和位元組輸出流 (FileOutputStream)。


字元輸入流(FileInputStream)


FileInputStream 類可以實例化,用於從磁碟文件讀取數據。我們可以 以下面幾種方式實例化該類:


(1)將文件名作為構造函數的參數,如: FileInputStream fs = new FileInputStream(「c:/temp.txt」);


(2)將File 類的對象作為構造函數的參數,如: File f = new File(「c:/temp.txt」); FileInputStream fs = new FileInputStream(f);

File 類是一個用來描述文件的文件名或者所在路徑的java 類。


字元輸出流(FileOutputStream)


我們把上面的代碼的功能加強一下,變成能夠擁有寫入功能的代碼。就叫字元輸出流(FileOutputStream)


用java.net包編程(用戶身份驗證和通訊)


現在我們的聊天程序有事件響應,可以登錄,可以留言,留言還可以被長 期保存起來。不過美中不足的是:


一、目前為止我們的用戶名和密碼驗證一直是在客戶端進行的。如果我們 的程序是 BS 結構的,那麼我們的驗證就不能放在客戶端上進行,那樣的話「BS 結構」會變得只是一句空話。


二、使用一個 CS 結構的聊天程序並不是在聊天,而是在自言自語,我們 需要通過途徑與網路中別的用戶取得聯繫。


要實現 BS 結構的理念,我們就得編寫一個能實現伺服器功能的程序。


java.net 包為網路化編程提供了功能強大的工具—— 一些基於套接字的客 戶端/伺服器端的類。(套接字是一種進程間的數據交換機制,這些進程既可以在同一機器上,也可 以通過網路連接的不同機器上。換句話說,套接字起到通信端點的作用。單個套 接字是一個端點,而一對套接字就構成了雙向通信的通道,使即使不在同一台機 器上的程序也可以通過網路進行數據交換,直到其中一個端點關閉連接。 套接字與主機地址和埠地址相關聯。主機地址是客戶端或伺服器程序所在 的主機的 IP 地址。埠地址是機器使用的通信埠。)的客 戶端/伺服器端的類。


到這裡,聊天程序的基本功能已經全部實現了,但是還有功能沒有被實現。比如多線程(處理多個用戶登陸)、JDBC(資料庫驗證)、集合(信息轉發)等等,但這些所用知識點太多。時間有限我也沒辦法把知識點和代碼一一列舉。只能見幾個比較重要的分享一下。大家需所有聊天程序功能實現的源代碼或者詳細步驟與知識點,

可以來我的Java新手群學習交流 一四四九零一零七六



這個Java程序如果你能寫出來,找不到工作來找我!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT技術java交流 的精彩文章:

這些計算機網路知識應該作為程序員的入門基礎
2017年最佳Web前端框架賞鑒
前端初學者最容易忽略的CSS書寫規範和順序
Java的「三生三世」

TAG:IT技術java交流 |

您可能感興趣

我找不到工作,我踹了我媽
我們來到蘇五口的工作室,斗膽問他印slogan是不是為了偷懶省事等尖銳問題,他說……
愛情來與不來你都會錯過,工作拖不拖著你都得找
如果你能做到「二做一走」,就無人敢你工作上找茬
李白,你再牛也不能這樣寫簡歷呀!難怪找不到工作
你對目前的工作不滿意,總也找不到一份合適的工作,可能是這裡出現了問題
程序員這麼多,你還能找到工作嗎?
婆婆給我做了這幾道菜,我連娘家都不想回了,也不想回去工作了!
主人到家就工作,中途去了趟廁所,再回來時,喵:不摸我別想工作
鏟屎的,雖然我很想你陪我,但是我不會妨礙你工作的
「你都有孩子了還出來工作,老公一定很沒用吧」
如果你能當好媽媽,還有什麼工作可以難倒你?
總有一天你會遇到一個男朋友,不要你工作,不要你做飯,不要你做家務……
你那份工作,你不做,別人也能做好。但你的孩子你不教,卻絕對沒有人能夠很好的代勞
聽我一句勸吧,工作再難找,也別幹這一行
這麼久還找不到工作,是因為你不夠優秀
這份工作你也能做,為什麼要了別人不要你?
我們來到蘇五口的工作室,斗膽問他印slogan是不是為了偷懶省事等尖銳問題,他說...
如果有一天你有錢到不再需要為錢而工作了,你還會做現在正在做的事情嗎?
留學後找不到好工作?你可能忽略了它……