一个简单可以聊天的聊天界面

一个简单QQ聊天界面

1, 代码实现
2, 效果图
3, 仿QQ聊天系统资源下载

具体代码实现如下:
package com.cts.entity;

import java.awt.*;
import java.awt.*;
import java.net.*;

import javax.swing.*;

public class Chat extends JFrame {

	private String friendIp;
	// private int port=8888;
	private JPanel panel1, panel2, panel3;
	private JTextArea text1;
	private JTextArea text2;
	private JButton jb1, jb2;

	public Chat(String friendIp) {
		this.friendIp = friendIp;
		init();
	}

	public void init() {
		setTitle("迷你QQ");
		setBounds(100, 100, 558, 576);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setIconImage(new ImageIcon("qq.jpg").getImage());

		JSplitPane splitPane = new JSplitPane();
		splitPane.setDividerLocation(300);
		splitPane.setOrientation(JSplitPane.VERTICAL_SPLIT);
		getContentPane().add(splitPane);

		panel1 = new JPanel();
		panel1.setLayout(new BorderLayout());
		splitPane.setRightComponent(panel1);

		panel2 = new JPanel();
		FlowLayout fl = new FlowLayout();
		fl.setAlignment(FlowLayout.RIGHT);
		panel1.add(panel2, BorderLayout.SOUTH);

		jb1 = new JButton();
		jb1.setText("关闭");
		jb2 = new JButton();
		jb2.setText("发送");

		panel2.add(jb1);
		panel2.add(jb2);

		JScrollPane scrollPane = new JScrollPane();
		panel1.add(scrollPane, BorderLayout.CENTER);

		text1 = new JTextArea();
		text1.setText("--开始聊天--");
		scrollPane.setViewportView(text1);

		JScrollPane sp1 = new JScrollPane();
		splitPane.setLeftComponent(sp1);

		text2 = new JTextArea();
		text2.setText("--聊天记录--");
		text2.setEditable(false);
		sp1.setViewportView(text2);

		String sum = "";
		new Thread(new Runnable() {
			public void run() {
				// 使用udp
				DatagramSocket ds = null;
				try {
					ds = new DatagramSocket(8989);
					while (true) {
						byte[] buf = new byte[1024];
						DatagramPacket dp = new DatagramPacket(buf, buf.length);

						ds.receive(dp);
						text2.setText(text2.getText() + "\r\n" + dp.getAddress() + "\r\n"
								+ new String(dp.getData(), 0, dp.getData().length));
					}
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}).start();

		jb2.addActionListener(new ActionListener() {

			String sum = "";

			public void actionPerformed(ActionEvent e) {
				String str = "我:" + text1.getText() + "\n";
				String ss = text1.getText() + "\n";
				text1.setText("");
				String str1 = text2.getText() + "\n";
				text2.setText("");
				sum = str1 + str;
				text2.setText(sum);
				// chatReord.getText()
				DatagramSocket ds = null;
				try {
					ds = new DatagramSocket();
					String s = ss + "\n";
					byte[] buf = s.getByt56"),
							8	pu
					ds.send(dp);

				} catch (Exception ex) {
					ex.printStackTrace();
				}

			}
		});

	}
	
public static void main(String[] args) {
		new Chat("192.168.43.91").setVisible(true);
	}
}
效果图如下,可以实现聊天,仅供参考:

这里写图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值