• 大小: 50.45 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-18
  • 语言: Java
  • 标签: Java  UDP  TCP  多线程  

资源简介

用Java编写的一个聊天程序,通信部分大部分是UDP通信

资源截图

代码片段和文件信息

package org.liujian.client;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class Chatframe extends Jframe implements ActionListener {

private static final long serialVersionUID = 3L;

MsgClient mc;

Container cont = this.getContentPane();
JPanel jp1 = new JPanel(new GridLayout(1 1));
JPanel jp2 = new JPanel(new GridLayout(2 1));
JPanel jp3 = new JPanel();

JTextArea jta1 = new JTextArea();
JScrollPane scrollPane1 = new JScrollPane(jta1);
JTextArea jta2 = new JTextArea();
JScrollPane scrollPane2 = new JScrollPane(jta2);

JButton sendButton = null;
JButton updButton = null;

int guestId;
String guestName;

public Chatframe(MsgClient mc) {
this.mc = mc;

this.setSize(400 500);
this.setLocation(800 100);
this.setLayout(new GridLayout(2 1));

this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (Chatframe.this.jta1.getText().equals(““) || !Chatframe.this.mc.isOnline()) {
Chatframe.this.setVisible(false);
return;
}
int result = JOptionPane.showConfirmDialog(Chatframe.this
“是否保存聊天记录?“ “提示“ JOptionPane.YES_NO_CANCEL_OPTION);
switch (result) {
case JOptionPane.YES_OPTION:
Chatframe.this.saveChatRecord();
break;
case JOptionPane.NO_OPTION:
break;
case JOptionPane.CANCEL_OPTION:
break;
}
Chatframe.this.jta1.setText(““);
Chatframe.this.setVisible(false);
}
});
// this.setVisible(true);
jta1.setEditable(false);
jta2.setEditable(true);

jp1.add(scrollPane1);
jp2.add(scrollPane2);
jp2.add(jp3 BorderLayout.SOUTH);

Icon sendIcon = new ImageIcon(“icons/send.png“);
Icon updIcon = new ImageIcon(“icons/upd_info.png“);
sendButton = new JButton(sendIcon);
updButton = new JButton(updIcon);
sendButton.setSize(100 30);
updButton.setSize(100 30);
sendButton.setPreferredSize(new Dimension(100 30));
updButton.setPreferredSize(new Dimension(100 30));
sendButton.addActionListener(this);
updButton.addActionListener(this);
jp3.add(sendButton);
jp3.add(updButton);
jp3.setSize(200 60);
this.add(jp1 BorderLayout.SOUTH);

cont.add(jp1);
cont.add(jp2);
}

protected void saveChatRecord() {

Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2009-05-16 20:39  NewMessager1.8\.classpath

     文件        390  2009-06-10 08:38  NewMessager1.8\.project

     文件       1474  2009-06-13 12:16  NewMessager1.8\bin\org\liujian\client\Chatframe$1.class

     文件       5616  2009-06-13 12:16  NewMessager1.8\bin\org\liujian\client\Chatframe.class

     文件       1372  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\client\Guest.class

     文件        881  2009-06-10 09:23  NewMessager1.8\bin\org\liujian\client\MsgClient$1.class

     文件       9966  2009-06-10 09:23  NewMessager1.8\bin\org\liujian\client\MsgClient.class

     文件       1383  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\client\NetClient$UDPThread.class

     文件       3288  2009-06-10 09:23  NewMessager1.8\bin\org\liujian\client\NetClient.class

     文件       2490  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\AskClientsMsg.class

     文件       2728  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\ChatMsg.class

     文件       2395  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\ClientOffMsg.class

     文件       2258  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\ClientOnMsg.class

     文件        443  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\Msg.class

     文件       2300  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\MsgRequest.class

     文件       2462  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\msg\MsgResponse.class

     文件        886  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\MsgServer$Client.class

     文件       4097  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\MsgServer$UDPThread.class

     文件       3091  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\MsgServer.class

     文件        982  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\ServerManager$1.class

     文件        898  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\ServerManager$ServerThread.class

     文件       3209  2009-06-10 08:38  NewMessager1.8\bin\org\liujian\server\ServerManager.class

     文件       4582  2009-06-03 19:40  NewMessager1.8\icons\send.png

     文件       3691  2009-06-03 19:40  NewMessager1.8\icons\upd_info.png

     文件         82  2009-08-26 16:19  NewMessager1.8\readme.txt

     文件       4560  2009-06-13 12:16  NewMessager1.8\src\org\liujian\client\Chatframe.java

     文件        907  2009-06-06 12:40  NewMessager1.8\src\org\liujian\client\Guest.java

     文件       7706  2009-06-10 09:23  NewMessager1.8\src\org\liujian\client\MsgClient.java

     文件       2750  2009-06-07 20:59  NewMessager1.8\src\org\liujian\client\NetClient.java

     文件       1666  2009-06-06 11:51  NewMessager1.8\src\org\liujian\msg\AskClientsMsg.java

............此处省略25个文件信息

评论

共有 条评论