java多线程聊天代码_Java多线程实现聊天客户端和服务器

本文通过实例代码展示了如何使用Java实现一个简单的聊天室,涵盖了GUI编程、网络通信及多线程技术,包括ServerSocket、Socket、Thread和Runnable的使用。
摘要由CSDN通过智能技术生成

本文实例为大家分享了java聊天室代码,供大家参考,具体内容如下

主要涉及知识

·Java中GUI程序的编写,包括事件监听机制。

·Java的网络通信编程,ServerSocket,Socket类的使用。

·Java中多线程的编程,Thread类,Runnable接口的使用。

源代码

客户端

package project1;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import javax.swing.*;

public class Client {

private JFrame clientFrame;

private JLabel IPLabel;

private JLabel PortLabel;

private JLabel sayLabel;

private JLabel nicknameLabel;

private JTextField IPText;

private JTextField PortText;

private JTextField nicknameText;

private JTextField sayText;

private JButton connectButton;

private JButton nicknameButton;

private JButton sayButton;

private JPanel jPanelNorth;

private JPanel jPanelSouth0;

private JPanel jPanelSouth1;

private JPanel jPanelSouth2;

private JTextArea clientTextArea;

private JScrollPane scroller;

private BufferedReader reader;

private PrintWriter writer;

private String nickname;

public static void main(String args[]) {

Client aClient = new Client();

aClient.startUp();

}

// 初始化组件

public Client() {

nickname = "客户端";

clientFrame = new JFrame();

jPanelNorth = new JPanel();

IPLabel = new JLabel("服务器IP", JLabel.LEFT);

IPText = new JTextField(10);

PortLabel = new JLabel("服务器端口", JLabel.LEFT);

PortText = new JTextField(10);

connectButton = new JButton("连接");

clientTextArea = new JTextArea();

scroller = new JScrollPane(clientTextArea);

jPanelSouth0 = new JPanel();

jPanelSouth1 = new JPanel();

jPanelSouth2 = new JPanel();

nicknameLabel = new JLabel("昵称", JLabel.LEFT);

nicknameText = new JTextField(nickname, 30);

nicknameButton = new JButton("确认");

sayLabel = new JLabel("消息", JLabel.LEFT);

sayText = new JTextField(30);

sayButton = new JButton("确认");

}

// 构建GUI

private void buildGUI() {

// 窗口的设置

clientFrame.setTitle("客户端");

clientFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

clientFrame.setSize(550, 550);

// 北区的组件

jPanelNorth.add(IPLabel);

jPanelNorth.add(IPText);

jPanelNorth.add(PortLabel);

jPanelNorth.add(PortText);

jPanelNorth.add(connectButton);

clientFrame.getContentPane().add(BorderLayout.NORTH, jPanelNorth);

// 中间的组件

clientTextArea.setFocusable(false);

scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值