毕业设计 - 基于Java的即时通讯软件的设计与实现【源码+论文】

293 篇文章 8 订阅
266 篇文章 17 订阅


前言

今天学长向大家分享一个 java 设计项目:

基于Java的即时通讯软件的设计与实现


一、项目设计

1. 模块设计

在这里插入图片描述
该即时通讯系统是有两部分组成,

服务器端可以通过启动来监听客户端信息的传递与执行各种对客户端的监控,客户端则是通过人性化与美观的界面来使用户可以易上手和舒适的体验快速与简便的通讯。

应用从这两部分分别进行了详细的功能设计,服务器端功能主要为启动对于客户端的监听与关闭监听,还有对于已注册用户的实时监控与管理,客户端功能主要为使用者该软件账号的申请与进入操作界面,还有自己资料的修改以及对于其他账号好友的添加与管理等等。

2. 实现效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

二、部分源码

部分代码示例:

package cn.itbaizhan.client;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintStream;
import java.io.RandomAccessFile;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import cn.itbaizhan.common.*;

public class ChangeHead extends JDialog {
	 BufferedReader in;//����������
	 PrintStream out;//���������
	 UserBean myInfo;
	 JLabel jLtop=new JLabel(new ImageIcon("src/file/changeHeadtop.jpg"));//530*25
	 JButton jB1=new JButton(new ImageIcon("src/file/changeHead1.jpg"));//75*20�Զ���ͷ��
	 JPanel jP=new JPanel();//��ʾϵͳͷ��ģ��
	 //JScrollPane js=new JScrollPane(jP);
	 JButton jB2=new JButton(new ImageIcon("src/file/changeHead2.jpg"));//65*20ϵͳͷ��
	 JButton jB3=new JButton(new ImageIcon("src/file/changeHead3.jpg"));//90*20��Աͷ��
	 JButton jB4=new JButton(new ImageIcon("src/file/changeHead4.jpg"));//70*20��Աͷ��
	 JLabel jLtop2=new JLabel(new ImageIcon("src/file/changeHeadtop2.jpg"));//140*20
	 JLabel jLshow=new JLabel("�Ƽ�ͷ��");
	 JLabel jLprepare=new JLabel("Ԥ��");
	 JButton jBsure=new JButton(new ImageIcon("src/file/changeHeadSure.jpg"));//65*20
	 JLabel por=new JLabel(new ImageIcon("src/file/personelView1.jpg"));
	 String imagePath="src/head/10-1.gif";//�û�ѡ���ͼ���·��
	 PersonelView father;
	public ChangeHead(JFrame owner, String title, boolean b,
			UserBean myInfo, BufferedReader in, PrintStream out,PersonelView father) {
		// TODO Auto-generated constructor stub
		super(owner,title,b);
		this.in=in;
		this.out=out;
		this.myInfo=myInfo;
		this.father=father;
		this.setSize(530, 403);
		this.setLocationRelativeTo(null);
		this.setLayout(null);
		init();
		this.add(jLtop);
		this.add(jB1);
		this.add(jB2);
		this.add(jB3);
		this.add(jB4);
		this.add(jLtop2);
		this.add(jP);
		this.add(jLshow);
		this.add(jLprepare);
		this.add(por);
		this.add(jBsure);
		this.setVisible(true);
	}
	 public void init()
	 {
		 jLtop.setBounds(0, 0, 530, 25);
		 jB1.setBounds(0, 25, 75, 20);
		 jB2.setBounds(75, 25, 65, 20);
		 jP.setBounds(0, 70, 400, 500);
		 jP.setBackground(Color.WHITE);
		 jP.setLayout(new FlowLayout());
		 makeIcon();
		 jB3.setBounds(140, 25, 90, 20);
		 jB4.setBounds(230, 25, 70, 20);
		 jLtop2.setBounds(300, 25, 100, 20);
		 jLshow.setFont(new Font("����",Font.PLAIN,14));
		 jLshow.setForeground(Color.BLACK);
		 jLshow.setBounds(10,45, 400, 25);
		 jLshow.setBackground(Color.WHITE);
		 
		 jLprepare.setFont(new Font("����",Font.PLAIN,16));
		 jLprepare.setForeground(Color.BLACK);
		 jLprepare.setBounds(410,30, 100, 25);
		 jLprepare.setBackground(Color.WHITE);
		
		 por.setIcon(new ImageIcon(myInfo.getPortrait()));
		 por.setBounds(420, 60, 60, 60);
		 jBsure.setBounds(420, 335, 65, 20);
		 jBsure.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				String image=por.getIcon().toString();
				out.println("UpdateMyportrait");
				out.flush();
				out.println(myInfo.getUserNum());
				out.flush();
				out.println(image);
				out.flush();
				try {
					String judge=in.readLine();
					if(judge.equals("updateMyportraitOver"))
					{
						ChangeHead.this.setVisible(false);
						//JOptionPane.showMessageDialog(father, "����ͷ��ɹ���");
						System.out.println("����ͷ��ɹ���");
					}
					else if(judge.equals("updateMyportraitFail"))
					{
						ChangeHead.this.setVisible(false);
						JOptionPane.showMessageDialog(father, "����ͷ��ɹ���");
						System.out.println("ϵͳ��æ�����Ժ����ԣ�");
					}
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
				
			}
			 
		 });
	
	 }
	 private void makeIcon()
	 {
		 String path="src/head/";
		 try {
			RandomAccessFile file=new RandomAccessFile(path+"face.txt","r");
			long fileLongth=file.length();
			System.out.println(fileLongth);
			long filePointer=0;
			JLabel[] jLimage=new JLabel[84];
			int i=0;
			while(filePointer<fileLongth)
			{
				jLimage[i]=new JLabel(new ImageIcon(new String(path+file.readLine())));
				jLimage[i].addMouseListener(new MouseAdapter(){
					public void mousePressed(MouseEvent e)
					{
						String iconInfo=e.toString();
						int begin=iconInfo.indexOf("src/head");
						int last=iconInfo.lastIndexOf("-1.gif");
						imagePath=iconInfo.substring(begin, last+6);
						por.setIcon(new ImageIcon(imagePath));
						System.out.println(imagePath);
					}
				});
				jP.add(jLimage[i]);
				i++;
				filePointer=file.getFilePointer();
			}
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	 }
}

项目源码

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java聊天室的设计实现socket 设计软件源码+WORD毕业论文文档 Java聊天室系统主要用于实现在线聊天,基本功能包括:服务端和客户端。本系统结构如下: (1)服务端: 1、能够开启和关闭服务器 2、等待着客户端从特殊端口发送的请求 3、监听的端口并不是固定的,服务端的端口是能够自定义的 4、能够广播消息向所有连接到服务器的用户 (2)客户端: 1、能够和服务端进行连接 2、新的用户能够注册账号 3、通过用户名以及密码完成用户的登陆,连接到聊天室 4、用户能够聊天室发送消息 目 录 摘要 I Abstract II 目 录 III 1 引言 1 2 网络聊天室的简介 2 2.1网络聊天室现状和发展 2 3 完成网络聊天室的技术以及环境 4 3.1 Java的介绍 4 3.2 Java的特点 4 3.3 TCP/IP协议的知识 5 3.4 Socket的介绍 6 3.5 开发工具 6 4 网络聊天室系统的设计 7 4.1项目概述 7 4.2 网络聊天室系统的设计 7 5 系统详细设计 8 5.1 服务器模块的设计 8 5.2 客户端模块的设计 8 6 系统测试 9 6.1 单元测试 9 6.2 系统测试 9 7 总结 10 参考文献 11 致谢 12 1 引 言 随着社会的发展和互联网技术的发展,普通老百姓也能够拥有属于自己的计算机,在平常的生活中也离不开了网络技术的支持,而替代了电话和写信的网上即时聊天成为了人们十分常见的沟通方式。 本软件是采用sun公司开发提供的java语言制作的,是基于C/S模型的网上聊天室。这个系统分为两个部分,服务端和客户端。服务端的工作主要是来监听和接收来自客户端的请求,然后处理客户端发来的消息,并通知客户端。而客户端的功能能够让新用户注册,通过用户名密码登陆并且使用该系统。通过服务端和客户端的协同工作最终使用户能够使用网络聊天室,在聊天室中完成用户和用户之间的沟通。 2 网络聊天室简介 当今社会,能够实现即时通讯软件使用频率是十分恐怖的,网络聊天室作为它的一种,使用人数也是相当可观的。国内处于垄断的QQ,业界老大哥微软的MSN都是大众关注和使用的焦点,普通老百姓也能够拥有属于自己的计算机,在平常的生活中也离不开了网络技术的支持,它是人们的生活变得十分的便利和高效,你能在网上找到自己想要的信息和有共同兴趣爱好的朋友。而且,现在很多的软件还有多人聊天,电子会议等一系列功能。 2.1 网络聊天室现状和发展 网上即时聊天室是广泛使用的一种技术,它的简单方便的沟通方式能够被广大的网上用户所使用。在当今社会,网上聊天是互联网服务重要的一环,有大约43%的用户都会使用网上聊天,是排在第四位。但是有很多人认为网络聊天室就是一种用来娱乐和打发时间的方式,而缺少了实际的价值。就目前来说,能够完成收入的网络聊天室其实并不多。它应该怎么实现自己的商业价值外界并没有过多的关注。 现在,很多企业都会开发属于自己的聊天室,用户通过该网站注册的用户名以及密码登陆到企业的服务器上。在聊天室中,用户之间可以通过输入文字以及各种符号来表达自己的想法,来达到互相之间的沟通。目前,开发一个供用户使用的网络聊天室的技术门槛并不是很高,也不需要大量的资金,国家对于这方面的管制和政策也没有太限制,所以当今社会上聊天室的竞争其实是很激烈的,腾讯,网易,新浪都有属于自己的网络聊天

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值