日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java chat_使用 Java 创建聊天客户端-1

發布時間:2023/12/19 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java chat_使用 Java 创建聊天客户端-1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.聊天客戶端文本框的搭建.

項目截圖:java project

代碼:

(1).ChatManager.java

package com.nantian.javachatclient.main;

import com.nantian.javachatclient.view.MainWindow;

public class ChatManager {

//將類單例化的步驟就是講他的構造方法變成private

//ChatManager就會有唯一的實例

private ChatManager() {}

private static final ChatManager instance=new ChatManager();

public static ChatManager getChatManager() {

return instance;

}

//具體實現連接服務器的操作

public void connect(String ip) {

}

//"發送"按鈕發送內容函數

public void send(String out) {

}

//界面中只能向chatManager發送數據,那么接收到數據后怎樣放到界面上呢?

//需要對MainWindow有個引用,并為它實現setWindow方法

MainWindow window;

public void setWindow(MainWindow window) {

this.window=window;

//傳遞之后

window.appendText("文本框已經和ChatManager綁定了!");

}

}

(2).StartClient.java

package com.nantian.javachatclient.main;

import java.awt.EventQueue;

import com.nantian.javachatclient.view.MainWindow;

public class StartClient {

/**

* 將窗體主方法放到了這里

* @param args

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

MainWindow frame = new MainWindow();

frame.setVisible(true);

//創建window的時候,對MainWindow有個引用

ChatManager.getChatManager().setWindow(frame);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

}

(3).MainWindow.java

new -->project-->web builder-->JFrame(需要下載web builder插件!)

package com.nantian.javachatclient.view;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import com.nantian.javachatclient.main.ChatManager;

import javax.swing.JTextArea;

import javax.swing.GroupLayout;

import javax.swing.GroupLayout.Alignment;

import javax.swing.LayoutStyle.ComponentPlacement;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

public class MainWindow extends JFrame {

/**

*

*/

private static final long serialVersionUID = 1L;

private JPanel contentPane;

//文本控件聲明到類中,讓他作為類的變量

JTextArea txt;

private JTextField IP;

private JTextField send;

/**

* Create the frame.

*/

public MainWindow() {

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

txt = new JTextArea();

txt.setText("Ready...");

IP = new JTextField();

IP.setText("127.0.0.1");

IP.setColumns(10);

JButton button = new JButton("連接到服務器");

button.addMouseListener(new MouseAdapter() {

//mouse-->clicked自動創建的代碼

@Override

public void mouseClicked(MouseEvent e) {

//為"連接到服務器"按鈕添加動作

//使用函數把它和這個按鈕的監聽事件綁定起來

ChatManager.getChatManager().connect(IP.getText());

}

});

send = new JTextField();

send.setText("你好!");

send.setColumns(10);

JButton button_1 = new JButton("發送");

button_1.addMouseListener(new MouseAdapter() {

//為"發送"按鈕添加動作

@Override

public void mouseClicked(MouseEvent e) {

//當前文本發送呢內容

ChatManager.getChatManager().send(send.getText());

appendText("我說:"+send.getText());

//發送出去后,需要將當前文本框清空

send.setText("");

}

});

GroupLayout gl_contentPane = new GroupLayout(contentPane);

gl_contentPane.setHorizontalGroup(

gl_contentPane.createParallelGroup(Alignment.LEADING)

.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()

.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)

.addComponent(txt, GroupLayout.DEFAULT_SIZE, 414, Short.MAX_VALUE)

.addGroup(Alignment.LEADING, gl_contentPane.createSequentialGroup()

.addComponent(IP)

.addPreferredGap(ComponentPlacement.RELATED)

.addComponent(button))

.addGroup(gl_contentPane.createSequentialGroup()

.addComponent(send, GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE)

.addPreferredGap(ComponentPlacement.RELATED)

.addComponent(button_1, GroupLayout.PREFERRED_SIZE, 129, GroupLayout.PREFERRED_SIZE)))

.addContainerGap())

);

gl_contentPane.setVerticalGroup(

gl_contentPane.createParallelGroup(Alignment.LEADING)

.addGroup(gl_contentPane.createSequentialGroup()

.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)

.addComponent(IP, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)

.addComponent(button))

.addPreferredGap(ComponentPlacement.RELATED)

.addComponent(txt, GroupLayout.DEFAULT_SIZE, 193, Short.MAX_VALUE)

.addPreferredGap(ComponentPlacement.RELATED)

.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)

.addComponent(send, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)

.addComponent(button_1)))

);

contentPane.setLayout(gl_contentPane);

}

public void appendText(String in) {

txt.append("\n"+in);

}

}

操作截圖:

=============================================================================================================

框架已搭建完成,聊天客戶端的核心內容見:使用 Java 創建聊天客戶端-2

總結

以上是生活随笔為你收集整理的java chat_使用 Java 创建聊天客户端-1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。