一个简单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 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() {
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);
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);
}
}
效果图如下,可以实现聊天,仅供参考: