资源简介
《分布式系统》课程的一个作业,作为一个小Demo给大家参考一下。其实聊天窗口有点小bug,就交给你们去处理吧^_^
代码片段和文件信息
package client;
import javax.swing.Jframe;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import javax.swing.JScrollPane;
import java.awt.Component;
import java.awt.Rectangle;
import java.awt.Font;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class ClientChatDlg extends Jframe implements ActionListener {
private JTextArea contentArea;
private static HashMap dlgMap = new HashMap();
private JTextField textField;
private Socket peerSocket;
//是被动连接
private boolean isPassive = false;
//是新连接
private boolean isNewConnect = true;
public ClientChatDlg(final String title Socket socket Component parent boolean isPassive) {
this.isPassive = isPassive;
//当前窗口加入映射,用于判断窗口是否已经打开
dlgMap.put(title this);
settitle(title);
setBounds(new Rectangle(0 0 350 350));
JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane BorderLayout.CENTER);
contentArea = new JTextArea();
contentArea.setFont(new Font(“宋体“ Font.PLAIN 13));
contentArea.setLineWrap(true);
contentArea.setEditable(false);
scrollPane.setViewportView(contentArea);
JPanel panelSend = new JPanel();
getContentPane().add(panelSend BorderLayout.SOUTH);
textField = new JTextField();
panelSend.add(textField);
textField.setColumns(10);
JButton btnSend = new JButton(“发送“);
btnSend.addActionListener(this);
btnSend.setFont(new Font(“微软雅黑“ Font.PLAIN 12));
panelSend.add(btnSend);
setLocationRelativeTo(parent);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
//关闭对话框时,从映射中移除它
dlgMap.remove(title);
//关闭套接字
closeChatSocket();
super.windowClosing(e);
}
});
setChatSocket(socket);
}
public void setChatSocket(Socket socket) {
if (peerSocket != null)
closeChatSocket();
this.peerSocket = socket;
//开始接收消息
new ReceiveThread().start();
}
private void closeChatSocket() {
try {
peerSocket.close();
} catch (IOException e1) {
}
}
/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-10-27 20:10 P2P聊天软件\
文件 496640 2016-01-19 23:23 P2P聊天软件\P2P聊天软件 设计文档.doc
目录 0 2015-10-27 19:37 P2P聊天软件\源代码\
目录 0 2015-10-27 19:12 P2P聊天软件\源代码\client\
文件 5367 2015-10-27 17:17 P2P聊天软件\源代码\client\ClientChatDlg.java
文件 3484 2015-10-27 17:01 P2P聊天软件\源代码\client\ClientCore.java
文件 9038 2015-10-27 16:50 P2P聊天软件\源代码\client\ClientMainDlg.java
目录 0 2015-10-27 19:12 P2P聊天软件\源代码\server\
文件 2338 2015-06-16 14:11 P2P聊天软件\源代码\server\ServerConfigPanel.java
文件 5597 2015-10-26 11:23 P2P聊天软件\源代码\server\ServerCore.java
文件 3879 2015-10-27 17:32 P2P聊天软件\源代码\server\ServerMainDlg.java
文件 2178 2015-10-24 16:19 P2P聊天软件\源代码\server\ServerStartedPanel.java
- 上一篇:Java从入门到精通第4版光盘内容
- 下一篇:基于websocket的聊天室源码
相关资源
- 基于websocket的聊天室源码
- Java从入门到精通第4版光盘内容
- JavaSetup6u24
- java实现简单远程监控
- 图书管理系统java IO操作
- 基于Jpcap的网络数据抓包程序
- mysql-connector-java-3.1.7-bin.jar
- ImportExcelUtil.java文件支持所有Excel文件
- 实战JAVA高并发程序设计源代码汇总版
- 阿里java规范
- 学生信息管理系统-课程设计-Java,S
- java遗传算法智能组卷
- 应届毕业生的java简历模板
- 纯JAVA环境获取APK信息:包名版本版本号
- 宾馆客房管理系统JAVASwing+MySQL
- java-json.jar
- 基于二次误差度量的网格简化
- Java多线程实现生产者消费者
- Java记事本程序 Java程序设计入门,本
- mysql-connector-java-5.0.8-bin.jar
- 简单的java多人聊天小程序
- 数据库SQLserver+java课程设计
- java编写的FTP客户端程序
- java足球游戏
- java写的网络围棋程序
- Java Number Cruncher
- java项目视频连接.txt
- java网络对战的国际象棋源码
- 模拟售票系统程序(完整版)
- 基于java语言的浏览器设计与实现
评论
共有 条评论