基於Java的Socket類Tcp網路程式設計實現實時聊天互動程式(一):QQ聊天介面的搭建
首先把服務端和客戶端的聊天介面視窗搭建完成
效果可以看下圖:
主要包括:窗體、滾動條、皮膚、按鈕、文字框和文字域
這部分比較簡單,直接上程式碼:
1.服務端程式碼
package Chat;
import javax.swing.*;
import java.awt.*;
//如果一個類需要有介面的顯示,該類需要繼承JFram
//1.定義JFram窗體中的元件
//2.在構造方法初始化窗體的元件
public class ServerChatMain extends JFrame {
public static void main(String[] args) {
//
new ServerChatMain();//呼叫構造方法
}
//屬性
//文字域
private JTextArea jta;
//滾動條
private JScrollPane jsp;
//皮膚
private JPanel jp;
//文字框
private JTextField jtf;
//按鈕
private JButton jb;
//行為
//構造方法
public ServerChatMain(){
//初始化元件
jta = new JTextArea();
//設定文字與不可編輯
jta.setEditable(false);
//注意:需要將文字框新增到滾動條中,實現滾動效果
jsp = new JScrollPane(jta);
//皮膚
jp = new JPanel();
//文字框
jtf = new JTextField(10);
//按鈕
jb = new JButton("傳送");
//注意:需要將文字框與按鈕新增到皮膚中
jp.add(jtf);
jp.add(jb);
//注意:需要將滾動條與皮膚全部新增到窗體中
this.add(jsp, BorderLayout.CENTER);//放在中間
this.add(jp,BorderLayout.SOUTH);//放在最下面,上北下南
//注意:需要設定標題,大小,位置,關閉,是否可見
this.setTitle("QQ聊天服務端");
this.setSize(300,300);
this.setLocation(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
由於客戶端和服務端效果是一樣的,只需要複製一下到客戶端即可,下圖為在mac電腦上的效果圖。
2.客戶端程式碼
由於客戶端和服務端的介面是一樣的,複製後修改一下即可。
package Chat;
import javax.swing.*;
import java.awt.*;
//如果一個類需要有介面的顯示,該類需要繼承JFram
//1.定義JFram窗體中的元件
//2.在構造方法初始化窗體的元件
public class ClientChatMain extends JFrame {
public static void main(String[] args) {
//
new ClientChatMain();//呼叫構造方法
}
//屬性
//文字域
private JTextArea jta;
//滾動條
private JScrollPane jsp;
//皮膚
private JPanel jp;
//文字框
private JTextField jtf;
//按鈕
private JButton jb;
//行為
//構造方法
public ClientChatMain(){
//初始化元件
jta = new JTextArea();
//設定文字與不可編輯
jta.setEditable(false);
//注意:需要將文字框新增到滾動條中,實現滾動效果
jsp = new JScrollPane(jta);
//皮膚
jp = new JPanel();
//文字框
jtf = new JTextField(10);
//按鈕
jb = new JButton("傳送");
//注意:需要將文字框與按鈕新增到皮膚中
jp.add(jtf);
jp.add(jb);
//注意:需要將滾動條與皮膚全部新增到窗體中
this.add(jsp, BorderLayout.CENTER);//放在中間
this.add(jp,BorderLayout.SOUTH);//放在最下面,上北下南
//注意:需要設定標題,大小,位置,關閉,是否可見
this.setTitle("QQ聊天客戶端");
this.setSize(300,300);
this.setLocation(300,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
到這一步,聊天的介面也就搭建完成了。
下一步進行:Tcp通訊的思路和程式碼實現(後續補上鍊接)
記錄時間:2020年11月22日
相關文章
- Java 泛型詳解
- Head First Java學習筆記(7):繼承與多型
- VMware安裝CentOS虛擬機器與配置網路
- 遊戲程式設計模式學習:第一章命令模式
- Java 學生管理系統(MVC)開源原始碼(基礎版)
- 圖神經網路入門
- JavaScript正則學習筆記
- 5G+工業網際網路的中國登山隊,如何攀躍“產業化”山巒?
- 小白不懂就問,學自動化測試,會 Java 可以嗎,還是必須得會 python (python 不太會)
- docker網路問題解決辦法“大全”:關於宿主機訪問不了docker容器中web服務,或者容器內訪問不了外網的問題的解決辦法
- JavaBean重寫Object類中的方法
- Git程式碼託管常用命令
- java的序列化Serializable
- 實用小程式(1)之讀取xml並儲存為txt文字
- 編寫程式實現 f(n)=f(n-1)+f(n-2) (f(1)=1 和 f(2)=2 )函式。
- JavaWeb——驗證碼功能解決表單重複提交問題(使用谷歌驗證碼jar包為例)
- 分散式監控系統之Zabbix網路發現
- 關於Static程式碼塊、匿名程式碼塊、構造器的小擴充
- 一篇非常好的TCP報文傳送講解