Easy Talking!! 網路聊天室 組員 : 4970E002 劉浩文 4970E074 程均勤 4970E055 陳典杰.

Slides:



Advertisements
Similar presentations
JAVA 程式語言入門 (II).  版面配置  事件驅動  Ch14_01.java 1. import javax.swing.*; 2. import java.awt.*; 3. class Ch14_01 4. { 5. public static void main(String.
Advertisements

FCU, Department of ECE, IC Design Research Lab. TEL: # 4945 Pre-SIm , Post-Sim.
布林代數的應用--- 全及項(最小項)和全或項(最大項)展開式
計算機概論 ( 上機實習部分 ) 每週上課講義 授課教師 : 吳槐桂 最後更新 : 2004/10/11.
3Com Switch 4500 切VLAN教學.
遠距教學 - 簡報製作目錄 高品質、低頻寬的教材 段落與結構 ………………………………………………….3 善用滑鼠與畫筆 ………………………………………….4 字體的選擇 ………………………………………………….5 照片的設計 …………………………
PowerPoint2010 李燕秋 版面配置 版面配置指的是每一個頁面的內容配置 方式,不同的版面配置會有對應的母片。
教案課程片頭介紹 教案課程片頭是以圖片透過 Powerpoint 之動畫設 計功能轉變而成的動畫形式所呈現出來的影片, 目的是要讓老師們的課程顯得更加活潑、生動、 有趣,以往傳統的做法大部分都是以文字或投影 片的方式呈現,後來加以改良成為動畫呈現方式, 使得學生在複習課程方面能更加淺顯易懂、激發 出更多學習的興趣與樂趣。
SIP Mobiity TA: 洪敏書
1 第一章 Word 的基本觀念 內容概要: Word 的特色 啟動與離開 Word 的方法 滑鼠游標與外型的介紹 基本操作 Word 視窗法則 使用 Word 遭遇問題時, 應如何利用軟體特 性而獲得輔助解說.
Word 進階 Speaker : Kuo Tung Yang Date: 2008/12/10.
五小專案 黃詩晴 章乃云. 目錄 計算機 智慧盤 拼圖 記憶大挑戰 數學題庫 心得 參考文獻.
第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用. 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題.
CNA 2008 Project 1 TA: 徐志偉 Office: EA Grading policy: Total (100%) Report (20%) Socket Programming: (80%) –Basic (60%) –Advanced (20%)
Outlook Express.
1 實驗二 : SIP User Mobility 實驗目的 藉由 Registra 和 Redirect Server 的設計,深入瞭解 SIP 的運 作及訊息格式。 實作部分 ( 1 )實作一個 Registrar 來接收 SIP REGISTER ,而且 要將 REGISTER 中 Contact.
1 Hot Potatoes 克漏字 (.jcl) 單選,複選, 簡答 (.jqz) 配合題 (.jmt) 猜字謎 (.jcw) 重組.
各種線上電子資源的特異功能 STICnet 的 SDI 專題訂閱服務 2003/4/28 修改. 無論校內外皆可使用。連線至
Web Meeting 使用教學 ─ 學生版.  如何即時線上與老師互動? 一. 瀏覽太御科技首頁 二. 安裝 JoinNet 在首頁的左手邊 1. 下載 JoinNet 進行安裝 JoinNet.
1 網路同步學習 如何使用中山大學管理學院知識管理平台 愷中 製作. 2 如何登入中山大學網路學習平台 1. 首先, 請輸入 2. 點選申請帳號, 依照螢幕所示, 輸入個人資訊.
電腦攻擊與防禦 使用電腦教室 vmware 軟體說 明. 開機說明  選擇第二項 :Xp+VM 開機 Account: SNMG Pass:pc208.
From: BOOKS ONLINE 1 Safari Tech Books Online Safari Business Books Online 電子書資料庫.
JAVA 程式設計與資料結構 第十章 GUI Introdution III. File Chooser  File Chooser 是一個選擇檔案的圖形介面, 無論我們是要存檔還是要開啟檔案,使 用這個物件都會讓我們覺得容易且舒適。
國立中山大學財產管理系統 線上報廢、盤點系統 總務處保管組 策劃 計算機與網路中心 分析設計 2008/03.
Introduction to Java Programming Lecture 15 Objects and Classes.
Introduction to Java Programming Lecture 17 Abstract Classes & Interfaces.
24-6 設定開始與結束場景中的 程式 最後我們要替這個遊戲收個尾, 幫它把開始 的等待畫面跟結束畫面處理一下。
影像處理學習營 練習(四)製作影片 【下】 影像處理學習營 教師 吳清月. 製作影片 學習重點 一. 設定影片秒數。  加入音樂,與影片做結合。 三. 影片存檔方式之選擇  上傳到網路.
3-3 使用幾何繪圖工具 Flash 的幾何繪圖工具包括線段工具 (Line Tool) 、橢圓形工具 (Oval Tool) 、多邊星形 工具 (Rectangle Tool) 3 種。這些工具畫出 來的幾何圖形包括了筆畫線條和填色區域, 將它們適當地組合加上有技巧地變形與配 色, 不但比鉛筆工具簡單,
圖層的操作與管理 圖層的作用就如同一張張透明的賽璐璐片, 你可以將動畫中的每項物件, 放置在不同圖 層中, 圖層交疊就形成完整的畫面。在各圖 層中的物件, 做任何的移動或變化, 都不會 相互干擾, 所以當你編輯一個物件時, 只要 在物件所在的圖層進行操作, 將可大幅降低 製作過程的複雜度與難度。
影像處理學習營 練習(三)製作影片 【上】 影像處理學習營 教師 吳清月. 製作影片 學習重點 一. 利用 movie maker 軟體,編輯相片。  加上文字幕,與圖片結合。
各種線上電子資源的特異功能 SwetsWise 的 alert, TOC alert 與 Favorites 2003/4/28 修改.
行政院國家科學委員會工程技術發展處自動化學門 * 試以國立成功大學製造工程研究所 鄭芳田教授 產學合作計畫 : 智慧預測保養系統之設計與實作 成果報告盤點為範例 國科會工程處專題計畫成果典藏 自動化學門成果報告盤點範例.
各種線上電子資源的特異功能 SpringerLINK 的 Alert, Serials Update, News 2003/4/28 修改.
1 第 9 章 視窗應用程式的事件處理 9-1 事件的基礎 9-1 事件的基礎 9-2 表單事件 9-2 表單事件 9-3 滑鼠事件 9-3 滑鼠事件 9-4 鍵盤事件 9-4 鍵盤事件 9-5 表單的鍵盤事件 9-5 表單的鍵盤事件 9-6 控制項的事件 9-6 控制項的事件.
1 單元四 個人化服務 Web of Science 利用指引. 2 個人化服務 Sign In 登入 My EndNote Web 使用 EndNote Web 者可登入 My Citation Alert 查看或修改先前設定的引用通告 My Saved Searches 查看或更改先前儲存過的檢索.
第 10 章 視窗應用程式的工具列與 功能表 10-1 主功能表控制項 10-1 主功能表控制項 10-2 快顯功能表控制項 10-2 快顯功能表控制項 10-3 工具列控制項 10-3 工具列控制項 10-4 狀態列控制項 10-4 狀態列控制項 10-5 字型與色彩對話方塊 10-5 字型與色彩對話方塊.
1 Excel 講授內容 ( 進階 ) 授課教師 : 吳槐桂 最後更新 : 2008/05/01.
1-6 動畫的文件屬性 舞台是動畫實際播放的畫面, 所以舞台的大 小與長寬比例對將來動畫的呈現有很大的 影響。 Flash 預設的舞台尺寸是 550 Pixels × 400 Pixels, 背景為白色, 如果要更改舞台大小與 背景色, 請執行『修改 / 文件』命令, 開啟文 件屬性 (Document.
校外使用圖書館購置之資料庫 龍華大學圖書館. 讀者遠端認證 (RPA) 設定說明  透過圖書館架設完成的 RPA (Remote Patron Authentication) 讀者遠端認證代理主 機系統,讀者於校外或院外 可直接連線使 用本館所提供的資料庫。  若非使用本館電子資料,請勿設定此代理.
JAVA 程式設計與資料結構 第八章 GUI Introduction I. GUI  使用 java.swing 的 package 來設計視窗介 面,我們稱之為 Graphic User Interface(GUI) 。  在設計 GUI 的時候,需要 import javax.swing.*;
從此處輸入帳號密碼登入到管理頁面. 點選進到檔案管理 點選「上傳檔案」上傳資料 點選瀏覽選擇電腦裡的檔案 可選擇公開或不公開 為平台上的資料夾 此處為檔案分類,可顯示在展示頁面上,若要參加 MY EG 競賽,做品一律上傳到 “ 98 MY EG Contest ” 點選此處確定上傳檔案.
Chapter 17 Windows API 程式入門 VC++ 與 WindowsVC++ 與 Windows 建構遊戲設計的舞台 建構遊戲設計的舞台.
資料結構實習-一 參數傳遞.
6-2 認識元件庫與內建元件庫 Flash 的元件庫分兩種, 一種是每個動畫專 屬的元件庫 (Library) ;另一種則是內建元 件庫 (Common Libraries), 兩者皆可透過 『視窗』功能表來開啟, 以下即為您說明。
1 LAB 5. Audio Transmission over WLAN/GPRS. 2 Goal 嘗試使用 WLAN/GPRS 傳送 Audio 瞭解 WLAN/GPRS 網路特性 瞭解 WLAN/GPRS 對於 Audio 傳輸之影響 增進對於網路特性及多媒體傳輸的基本認識.
著作權所有 © 旗標出版股份有限公司 第 21 章 文件的權限及保護 功能設定. 本章提要 設定文件讀取權限 保護文件.
Hung-Hsiang WuWindows Processing Design1 Chapter 4 簡單視窗程式 表單與標籤的屬性 按鈕與編輯的屬性 設計簡單的應用程式 表單常用事件 一般鍵盤及滑鼠常見的事件 表單視窗間的呼叫 表單間資料傳送應用 專案選擇設定.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2008.
Management Abstracts Retrieval System; MARS 檢索操作.
2010 MCML introduction 製作日期: 2010/9/10 製作人 : 胡名霞.
2015/6/251 視訊剪輯軟體教學 PowerDirector. 2015/6/252 內容 開啟威力導演,儲存專案檔 擷取 編輯 – 視訊特效 – 文字特效 – 轉場特效 – 子母畫面 製作光碟.
校園網頁整合平台介紹 電算中心綜合業務組. 大綱 設計理念 功能介紹 實做 FAQ 特殊案例 Q&A.
Linguistics phonetic symbols. 先下載 IPA 字型檔案,執行安裝。 由於這個程式的字型目錄設定錯誤, 所以等重新開機時就會發現字型消失。 所以必須根據以下步驟來讓 Windows 加入 IPA 字型。
Web Meeting 使用教學 ─ 教師版. 如何即時線上與學生互動? 一. 瀏覽太御科技首頁 二. 安裝 JoinNet 在首頁的左手邊 1. 下載 JoinNet 進行安裝 JoinNet 2.
1 LAB 4. Video Transmission over WLAN/GPRS. 2 Goal 嘗試使用 WLAN/GPRS 傳送 Video 瞭解 WLAN/GPRS 網路特性 瞭解 WLAN/GPRS 對於 Video 傳輸之影響 增進對於網路特性及多媒體傳輸的基本認識.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2009.
1 第二十章 大型程式的發展 使用名稱空間 熟悉大型程式的開發方式 條件式編譯指令的撰寫. 2 名稱空間 名稱空間就像是一個管理介面,可以將定義的識別 字放在名稱空間之下,而不會有相互衝突的發生 名稱空間的語法如下 把變數 var 放在名稱空間 name1 內 要存取使用名稱空 間 name1 的變數.
Biological Science Database 個人化服務設定步驟. Biological Science Database 僅提供專題選 粹服務 專題選粹 (Alerts) :查詢後,提供儲存檢 索策略的功能,日後每週將符合條件的 更新資料,採 方式通知。每筆設定 最多每週可收到.
1 EndNote 金珊資訊有限公司 2 EndNote X2 新功能 新增標籤 (Tab) 視窗 線上查詢群組 智慧群組 (Smart Groups) 新增參考文獻類型 查詢全文 標示日期 以電子郵件傳送壓縮的 Library 檔案 Library.
Outlook 教學與研習 (1) - 設定及收發郵件 - 設定郵件規則 陽明大學資訊與通信中心 陳坤元 2006/03/27.
09610CS_ 校園授權軟體下載與安裝 講師 : 張智宏. 登入校務資訊系統 校園軟體下載.
-Artificial Neural Network- Matlab操作介紹 -以類神經網路BPN Model為例
Visual C++重點複習.
1 Introduction to Java Programming Lecture 2: Basics of Java Programming Spring 2010.
數字系統與資料表示法 教師: 陳炯勳 數系轉換 r進制數字 稱為 base r或 radix r 有r個計數符號,計數順序逢r歸零(進位) A n A n - 1 ‥‥A 2 A 1 A 0 ﹒A -1 A -2 ‥‥A -m 其中A n 及A.
多媒體技術與應用 實習作業 Part II. 實習作業 利用 Corel Paint Shop Pro X2 完成作業。 作業一:利用影像處理的技巧,讓這張影像變 的更清晰。
著作權所有 © 旗標出版股份有限公司 第 14 章 製作信封、標籤. 本章提要 製作單一信封 製作單一郵寄標籤.
遠端北風資料庫 公佈時間: 2006/4/26 繳交截止時間: 2006/5/10. 作業目的 實作遠端資料庫瀏覽程式.
1 IPTABLES and NAT on Fedora Core 6 Speaker : Rex Wu Date :
Presentation transcript:

Easy Talking!! 網路聊天室 組員 : 4970E002 劉浩文 4970E074 程均勤 4970E055 陳典杰

程式功能說明 我們製作一個網路 1 對 1 聊天的聊天室。 利用標籤等功能,美化聊天室的外觀,並利用按 鈕功能,使聊天室的功能更多。 能改變輸入與輸出文字的顏色,並且可以改變背 景的顏色,在視窗右上放皆有可愛的圖片。 附加「清除」與「傳送」按鈕,讓習慣使用滑鼠 的人使用。 Server 與 Client ,兩人的通關密碼設定相同的值, Client 取得 Server 的 IP Address 之後,按下呼叫鈕, 兩人若連線成功便可開始交談。

程式畫面( Server )

程式畫面( Client )

程式碼說明 紅色部分為我們新增的部份 黑色部分為原程式部份 藍色為程式說明 package onlyfun.caterpillar.chat; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class EasyTalkClientUI extends JFrame { private Container container; private JLabel label; private JTextField nickNameTextField, serverAddrTextField, serverPortTextField; private JButton connectToServerBtn;

private JButton textred; private JButton textorange; private JButton textyellow; //新增多個按鈕元件 private JButton textgreen; private JButton textblue; private JButton textwhite; private JButton textblack; private JButton textgred; private JButton textgorange; private JButton textgyellow; private JButton textggreen; private JButton textgblue; private JButton textgwhite; private JButton textgblack; private JButton deliver; private JButton rewrite;

private JTextArea messageTextArea, typeInTextArea; private EasyTalkClient chatClient; public EasyTalkClientUI() { super(“Easy Talking”); //改變視窗名稱 setUpUIComponent(); setUpEventListener(); setVisible(true);} private void setUpUIComponent() { setSize(600, 550); //改變視窗大小 this.setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); container = getContentPane(); JLabel label1 = new JLabel( //增加標籤放入可愛的圖片 new ImageIcon("icons/IconLblDisplay.png")); JLabel label2 = new JLabel( new ImageIcon("icons/IconClientID.png")); JPanel panel = new JPanel();

panel.setBorder(BorderFactory.createTitledBorder(“EasyTalking“)); //改變名稱 panel.setLayout(new FlowLayout(FlowLayout.LEFT)); panel.add(new JLabel(“ 暱稱 ”)); //改變名稱 panel.add(nickNameTextField = new JTextField(5)); panel.add(new JLabel("IP Address")); panel.add(serverAddrTextField = new JTextField(10)); panel.add(new JLabel(“ 通關密碼 ”)); //改變名稱 panel.add(serverPortTextField = new JTextField(5)); panel.add(connectToServerBtn = new JButton(" 呼叫 ")); panel.add(label2); panel.add(label1); messageTextArea = new JTextArea(13, 50); messageTextArea.setLineWrap(true); messageTextArea.setWrapStyleWord(true); messageTextArea.setEditable(false); panel.add(new JScrollPane(messageTextArea));

typeInTextArea = new JTextArea(3, 50); typeInTextArea.setLineWrap(true); typeInTextArea.setEditable(false); panel.add(new JLabel(“ 請選擇喜歡的文字顏色: ”)); //增加標籤以解釋按鈕擺放位置 panel.add(textred = new JButton(" 紅 ")); panel.add(textorange = new JButton(“ 橙 ”)); //多個改變文字顏色按鈕擺放位置 panel.add(textyellow = new JButton(" 黃 ")); panel.add(textgreen = new JButton(" 綠 ")); panel.add(textblue = new JButton(" 藍 ")); panel.add(textwhite = new JButton(" 白 ")); panel.add(textblack = new JButton(" 黑 ")); panel.add(new JLabel(“ 請選擇喜歡的背景顏色: ”)); //增加標籤以解釋按鈕擺放位置 panel.add(textgred = new JButton(“ 紅 ”)); //多個改變背景顏色按鈕擺放位置 panel.add(textgorange = new JButton(" 橙 ")); panel.add(textgyellow = new JButton(" 黃 ")); panel.add(textggreen = new JButton(" 綠 "));

panel.add(textgblue = new JButton(" 藍 ")); panel.add(textgwhite = new JButton(" 白 ")); panel.add(textgblack = new JButton(" 黑 ")); panel.add(new JScrollPane(typeInTextArea)); panel.add(deliver = new JButton(“ 傳送 ”)); //傳送訊息按鈕擺放位置 panel.add(rewrite = new JButton(“ 重寫 ”)); //重寫訊息按鈕擺放位置 container.add(panel); } private void setUpEventListener() { connectToServerBtn.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { connectToServerBtn.setEnabled(false); chatClient = new EasyTalkClient(); messageTextArea.append(" 呼叫中...\n");

new Thread(new Runnable(){ public void run() { try { chatClient.connectToServer(serverAddrTextField.getText(), Integer.parseInt(serverPortTextField.getText())); messageTextArea.append(nickNameTextField.getText()+" 進入 Easy Talking....\n"); //進版畫面 typeInTextArea.setEditable(true); String serverMessage; while((serverMessage = chatClient.getServerMessage()) != null) { messageTextArea.append(serverMessage ); messageTextArea.setCaretPosition(messageTextArea.getText().lengt()); }} catch(IOException ex) { chatClient.closeConnection(); connectToServerBtn.setEnabled(true); typeInTextArea.setEditable(false);} } }).start(); }} );

textred.addActionListener( new ActionListener() { //新增改變文字顏色按鈕程式 public void actionPerformed(ActionEvent e) { typeInTextArea.setForeground(Color.red); //打字區變紅色 messageTextArea.setForeground(Color.red); //訊息區變紅色 }}); textorange.addActionListener( new ActionListener() { //新增改變文字顏色按鈕程式 public void actionPerformed(ActionEvent e) {typeInTextArea.setForeground(Color.orange); messageTextArea.setForeground(Color.orange); }}); textyellow.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { //新增改變文字顏色按鈕程式 typeInTextArea.setForeground(Color.yellow); messageTextArea.setForeground(Color.yellow); }});

textgreen.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { typeInTextArea.setForeground(Color.green); //新增改變文字顏色按鈕程式 messageTextArea.setForeground(Color.green); }}); textblue.addActionListener( new ActionListener() { //新增改變文字顏色按鈕程式 public void actionPerformed(ActionEvent e) { typeInTextArea.setForeground(Color.blue); messageTextArea.setForeground(Color.blue);}}); textwhite.addActionListener( new ActionListener() { //新增改變文字顏色按鈕程式 public void actionPerformed(ActionEvent e) { typeInTextArea.setForeground(Color.white); messageTextArea.setForeground(Color.white); }});

textblack.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { // 新增改變文字顏色按鈕程式 typeInTextArea.setForeground(Color.black); messageTextArea.setForeground(Color.black); }}); textgred.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { messageTextArea.setBackground(Color.red); // 訊息區背景變紅色 }}); textgorange.addActionListener( // 新增改變背景顏色按鈕程式 new ActionListener() { public void actionPerformed(ActionEvent e){messageTextArea.setBackground(Color.orange); }});

textgyellow.addActionListener( new ActionListener() { //新增改變背景顏色按鈕程式 public void actionPerformed(ActionEvent e){ messageTextArea.setBackground(Color.yellow); }}); textggreen.addActionListener( new ActionListener() { //新增改變背景顏色按鈕程式 public void actionPerformed(ActionEvent e){ messageTextArea.setBackground(Color.green); }}); textgblue.addActionListener( new ActionListener() { //新增改變背景顏色按鈕程式 public void actionPerformed(ActionEvent e) { messageTextArea.setBackground(Color.blue); }});

textgwhite.addActionListener( new ActionListener() { //新增改變背景顏色按鈕程式 public void actionPerformed(ActionEvent e) { messageTextArea.setBackground(Color.white); }}); textgblack.addActionListener( new ActionListener() { //新增改變背景顏色按鈕程式 public void actionPerformed(ActionEvent e){messageTextArea.setBackground(Color.black); }}); typeInTextArea.addKeyListener( new KeyListener() { public void keyPressed(KeyEvent e) {} public void keyTyped(KeyEvent e) {} public void keyReleased(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_ENTER) {

String message = nickNameTextField.getText() + " : " + typeInTextArea.getText()+ " \n "; typeInTextArea.setText(""); messageTextArea.append(message); messageTextArea.setCaretPosition(messageTextArea.getText().length()); chatClient.sendMessageToServer(message.replace('\n', ' ')); }}}); deliver.addActionListener( //新增傳送訊息按鈕程式 new ActionListener() { public void actionPerformed(ActionEvent e) { String message = nickNameTextField.getText() + " : " + typeInTextArea.getText()+ " \n "; typeInTextArea.setText(""); messageTextArea.append(message); messageTextArea.setCaretPosition(messageTextArea.getText().length()); chatClient.sendMessageToServer(message.replace('\n', ' ')); }});

rewrite.addActionListener( //新增重寫訊息按鈕程式 new ActionListener() { public void actionPerformed(ActionEvent e) { typeInTextArea.setText(""); } ); } public static void main(String[] args) { new EasyTalkClientUI(); }

工作分配 程式撰寫: ( 文字顏色 ) 劉浩文 ( 背景顏色 ) 陳典杰 ( 插入圖片 ) 劉浩文 ( 按鈕 ) 陳典杰 ( 標籤說明 ) 劉浩文 簡報檔製作:程均勤