1. 程式人生 > >(原創)小程序設計(四)一起來聊天吧!

(原創)小程序設計(四)一起來聊天吧!

www tco 了解 代碼 oid ole com value etc

  解決上述問題之後,作為“客戶”的我,又覺得啟動的時候啟動的是若幹個客戶端窗口文件和一個服務器文件,服務器的輸出都是在控制臺輸出的,有了之前解決問題的經驗,考慮能不能寫一個服務器窗口文件,將服務器的輸出都放在窗口裏面,這樣啟動的時候都是啟動的是窗口文件,個人感覺好一些。

  於是有了修改後的第二版程序:

  1.將服務器輸出的文本內容在窗口顯示出來

  2.添加關閉服務器的按鈕

  

  為了解決這些問題,特地

  參考了 http://www.codeweblog.com/%E5%AE%9E%E7%8E%B0%E5%B0%86%E6%8E%A7%E5%88%B6%E5%8F%B0%E8%BE%93%E5%87%BA%E4%BF%A1%E6%81%AF%E8%BD%AC%E5%88%B0jtextarea%E4%B8%AD/

  這篇博客,感覺這篇博客思路很奇妙啊,

  主要運用了重寫system相關方法的辦法,可以將所有的syso代碼塊的輸出都輸出到area當中去。

  添加代碼為:

public void setConsoleMessateToArea() {
        
        OutputStream textAreaStream = new OutputStream() {
            
            @Override
            public void write(int b) throws IOException {
                area.append(String.valueOf((
char)b)); } public void write(byte b[], int off, int len) throws IOException { area.append(new String(b, off, len)); } public void write(byte b[]) throws IOException { area.append(new String(b)); } }; PrintStream myOut
= new PrintStream(textAreaStream); System.setOut(myOut); System.setErr(myOut); }

  效果展示圖:

技術分享圖片

  

  

  可能會有的第三版程序:

  1.添加強制某一個客戶端下線功能(不過你一個服務器做這個是不是不太好?)

  2.服務器顯示出所有參與聊天的成員

  3.客戶端顯示當前參與聊天的數目

(原創)小程序設計(四)一起來聊天吧!