java_模拟qq聊天的源代码

java_模拟qq聊天的源代码
java_模拟qq聊天的源代码

客户端:

package https://www.360docs.net/doc/c07244803.html,mutil;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import https://www.360docs.net/doc/c07244803.html,.Socket;

import javax.swing.JTextArea;

public class ClienThread extends Thread

{

private Socket socket = null;

private javax.swing.JTextArea jTextArea1;

public ClienThread(JTextArea jTextArea1)

{

this.jTextArea1 = jTextArea1;

}

public void run()

{

try

{

// 创建连接

socket = new Socket("", 12344);

String message = null;

while (true)

{

// 接受服务端请求

message = receive();

// 显示到消息接收框

if (message != null && !message.equals(""))

{

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("服务端:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText()

+ "\n服务端:" + message);

}

} else

{

message = "服务端以断开连接或未连接!";

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("服务端:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText()

+ "\n服务端:" + message);

}

break;

}

}

} catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 向服务端发送消息

*/

public void send(String message)

{

try

{

PrintWriter printWriter = new PrintWriter(socket.getOutputStream());

printWriter.write(message + "\n");

printWriter.flush();

} catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 接受服务端消息

*/

public String receive()

{

String message = "";

try

{

BufferedReader bufferedReader = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

message = bufferedReader.readLine();

} catch (IOException e)

{

System.out.println("服务端已断开或未连接!");

}

return message;

}

}

服务端:

package https://www.360docs.net/doc/c07244803.html,mutil;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import https://www.360docs.net/doc/c07244803.html,.ServerSocket;

import https://www.360docs.net/doc/c07244803.html,.Socket;

import javax.swing.JTextArea;

public class ServerThread extends Thread

{

private Socket socket = null;

private ServerSocket serverSocket = null;

private javax.swing.JTextArea jTextArea1;

public ServerThread(JTextArea jTextArea1)

{

this.jTextArea1 = jTextArea1;

}

public void run()

{

try

{

// 创建连接

serverSocket = new ServerSocket(12344);

// 监听客户连接

socket = serverSocket.accept();

String message = null;

while (true)

{

// 接受客户请求

message = receive(socket);

if (message != null && !message.equals(""))

{

// 显示到消息接收框

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("客户端:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText()

+ "\n客户端:" + message);

}

} else

{

message = "客户端以断开连接或未连接!";

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("客户端:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText()

+ "\n客户端:" + message);

}

break;

}

}

} catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 向客户端发送消息

*/

public void send(String message)

{

try

{

PrintWriter printWriter = new PrintWriter(socket.getOutputStream());

printWriter.write(message + "\n");

printWriter.flush();

} catch (IOException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

/**

* 接受客户端消息

*/

public String receive(Socket socket)

{

String message = "";

try

{

BufferedReader bufferedReader = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

message = bufferedReader.readLine();

} catch (IOException e)

{

System.out.println("服务端已断开或未连接!");

}

return message;

}

}

服务端界面:

/*

* SereveFrame.java

*

* Created on __DA TE__, __TIME__

*/

package com.insigma.frame;

import https://www.360docs.net/doc/c07244803.html,mutil.ServerThread;

/**

*

* @author __USER__

*/

public class ServerFrame extends javax.swing.JFrame

{

private ServerThread serverThread;

/** Creates new form SereveFrame */

public ServerFrame()

{

initComponents();

serverThread = new ServerThread(this.jTextArea1);

serverThread.start();

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

// GEN-BEGIN:initComponents

//

private void initComponents()

{

jScrollPane1 = new javax.swing.JScrollPane();

jTextArea1 = new javax.swing.JTextArea();

jScrollPane2 = new javax.swing.JScrollPane();

jTextArea2 = new javax.swing.JTextArea();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("\u670d\u52a1\u7aef");

setBackground(new java.awt.Color(153, 153, 255));

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jScrollPane1.setViewportView(jTextArea1);

jTextArea2.setColumns(20);

jTextArea2.setRows(5);

jScrollPane2.setViewportView(jTextArea2);

jButton1.setText("\u53d6\u6d88");

jButton1.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt)

{

jButton1ActionPerformed(evt);

}

});

jButton2.setText("\u53d1\u9001");

jButton2.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt)

{

jButton2ActionPerformed(evt);

}

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(

getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addContainerGap()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addComponent(

jButton1)

.addGap(18, 18,

18)

.addComponent(

jButton2)

.addGap(35, 35,

35))

.addGroup(

layout.createSequentialGroup()

.addComponent( jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE,

377, javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_V ALUE))

.addGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addComponent( jScrollPane2,

javax.swing.GroupLayout.DEFAULT_SIZE,

377, Short.MAX_V ALUE)

.addContainerGap()))));

layout.setVerticalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE,

242,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(18, 18, 18)

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(

https://www.360docs.net/doc/c07244803.html,ponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jButton2)

.addComponent(jButton1))

.addContainerGap()));

pack();

}//

// GEN-END:initComponents

/**

* 取消

*

* @param evt

*/

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

this.jTextArea2.setText("");

}

/**

* 发送

*

* @param evt

*/

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

// 向客户端发消息

String message = this.jTextArea2.getText();

if (message != null && !message.equals(""))

{

serverThread.send(message);

// 清空消息输入框

this.jTextArea2.setText("");

// 显示到消息接收框

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("我说:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText() + "\n我说:"

+ message);

}

}

}

/**

* @param args

* the command line arguments

*/

public static void main(String args[])

{

java.awt.EventQueue.invokeLater(new Runnable()

{

public void run()

{

new ServerFrame().setVisible(true);

}

});

}

// GEN-BEGIN:variables

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JTextArea jTextArea1;

private javax.swing.JTextArea jTextArea2;

// End of variables declaration//GEN-END:variables

}

客户端界面:

/*

* ClienFrame.java

*

* Created on __DA TE__, __TIME__

*/

package com.insigma.frame;

import https://www.360docs.net/doc/c07244803.html,mutil.ClienThread;

/**

*

* @author __USER__

*/

public class ClienFrame extends javax.swing.JFrame

{

private ClienThread clienThread;

/** Creates new form ClienFrame */

public ClienFrame()

{

initComponents();

clienThread = new ClienThread(this.jTextArea1);

clienThread.start();

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

// GEN-BEGIN:initComponents

//

private void initComponents()

{

jScrollPane1 = new javax.swing.JScrollPane();

jTextArea1 = new javax.swing.JTextArea();

jScrollPane2 = new javax.swing.JScrollPane();

jTextArea2 = new javax.swing.JTextArea();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setTitle("\u5ba2\u6237\u7aef");

setBackground(new java.awt.Color(153, 153, 255));

jTextArea1.setColumns(20);

jTextArea1.setRows(5);

jScrollPane1.setViewportView(jTextArea1);

jTextArea2.setColumns(20);

jTextArea2.setRows(5);

jScrollPane2.setViewportView(jTextArea2);

jButton1.setText("\u53d6\u6d88");

jButton1.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt)

{

jButton1ActionPerformed(evt);

}

});

jButton2.setText("\u53d1\u9001");

jButton2.addActionListener(new java.awt.event.ActionListener()

{

public void actionPerformed(java.awt.event.ActionEvent evt)

{

jButton2ActionPerformed(evt);

}

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(

getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addContainerGap()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(

jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE,

376, Short.MAX_VALUE)

.addGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addComponent(

jButton1)

.addGap(18, 18,

18)

.addComponent(

jButton2)

.addGap(25, 25,

25))

.addComponent(

jScrollPane2,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

376, Short.MAX_VALUE))

.addContainerGap()));

layout.setVerticalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE,

240, Short.MAX_V ALUE)

.addGap(18, 18, 18)

.addComponent(jScrollPane2,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(

https://www.360docs.net/doc/c07244803.html,ponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jButton1)

.addComponent(jButton2))

.addContainerGap()));

pack();

}//

// GEN-END:initComponents

/**

* 取消

*

* @param evt

*/

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)

{

this.jTextArea2.setText("");

}

/**

* 发送

*

* @param evt

*/

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt)

{

// 向服务端发消息

String message = this.jTextArea2.getText();

if (message != null && !message.equals(""))

{

clienThread.send(message);

// 清空消息输入框

this.jTextArea2.setText("");

// 显示到消息接收框

if (this.jTextArea1.getText() == null

|| this.jTextArea1.getText().equals(""))

{

this.jTextArea1.setText("我说:" + message);

} else

{

this.jTextArea1.setText(this.jTextArea1.getText() + "\n我说:"

+ message);

}

}

}

/**

* @param args

* the command line arguments

*/

public static void main(String args[])

{

java.awt.EventQueue.invokeLater(new Runnable()

{

public void run()

{

new ClienFrame().setVisible(true);

}

});

}

// GEN-BEGIN:variables

// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JScrollPane jScrollPane2;

private javax.swing.JTextArea jTextArea1;

private javax.swing.JTextArea jTextArea2;

// End of variables declaration//GEN-END:variables

}

JAVA局域网聊天系统源代码

这是我自己做的简单聊天系统客户端 package LiaoTianSys; import java.awt.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import https://www.360docs.net/doc/c07244803.html,.Socket; import https://www.360docs.net/doc/c07244803.html,.UnknownHostException; public class ConversationFrame extends JFrame { JScrollPane jsp; JTextField jtf; static JTextArea jta; //JTextArea jat1,jta2; JButton enter=new JButton("发送"); JButton jb=new JButton("聊天室好友"); JButton jb2=new JButton("进入聊天室"); JButton jb3=new JButton("刷新在线人员列表"); JPanel jp,jp1,jp3,jp4; DefaultListModel listmodel = new DefaultListModel(); //static String[] NAME=new String[10]; String n[]={"f"}; JList list=new JList(listmodel); JLabel time=new JLabel("当前系统时间:"); JLabel showtime=new JLabel("显示时间"); JLabel jl=new JLabel("输聊天信息"); JLabel nicheng=new JLabel("昵称"); JTextField NCshuru=new JTextField(10); static DataOutputStream dos; static DataInputStream dis; //final LoginFrame lf; Socket socket; public ConversationFrame() { Container con=getContentPane(); con.setLayout(new BorderLayout()); jp=new JPanel(); setSize(700,600); setLocation(100,100); jta=new JTextArea(); jta.setEditable(false);

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

JAVA代码编写一简单网络聊天程序

要求:聊天室服务器、聊天室客户端;客户端之间可以聊天。 因为我是初级选手,想借此程序分析学习java,所以代码最好多一点注释... 分数有限,望大家不吝赐教!!问题补充: 需要图形用户界面哦,最好用swing组件 服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示; 客户端:可以设定昵称,性别,客户间可以私聊 服务器端: import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import https://www.360docs.net/doc/c07244803.html,.*; public class Server extends JFrame implements ActionListener{ JPanel contentPane; JLabel jLabel2 = new JLabel(); JTextField jTextField2 = new JTextField("4700"); JButton jButton1 = new JButton(); JLabel jLabel3 = new JLabel(); JTextField jTextField3 = new JTextField(); JButton jButton2 = new JButton(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); ServerSocket server = null; Socket socket = null;BufferedReader instr =null;PrintWriter os=null ; //Construct the frame public Server() { jbInit(); } class MyThread extends Thread{//该线程负责接受数据 public void run(){ try{ while(true){ this.sleep(100); instr= new BufferedReader(new InputStreamReader(socket.getInputStream())); if(instr.ready()){ //检查是否有数据 jTextArea1.append("客户端: "+instr.readLine()+"\n"); } } }catch(Exception ex){} }

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

Java源代码___聊天室

Java 聊 天 室 制作人:_____杨永生_____ 制作时间:2012.9.26 目录 1本文简介 (2) 2聊天室截图与说明 (2) 2.1用Java编译: (2) 2.2服务器登录界面 (2) 2.3服务器窗口 (2) 2.4客服端登录界面 (3) 2.5客服端窗口 (3) 3服务器端 (6) 3.1MyServer()方法 (6) 3.2Login()方法 (10) 3.3Time()方法 (13) 4客户端 (14) 4.1MyClient()方法 (14) 4.2Login()方法 (18) 4.3Time()方法 (20)

1 本文简介 这是一个简单的Java聊天室,仅提供给一些刚学Java的学生做实验,本文也是仅供参考. 本文代码都有注释,希望读者能读懂代码,本实验内部还有一些错误,比如只能一条一条的发信息,不能连发,希望能解决本问题的朋友能给我发信息,我的QQ号就是百度号! 2 聊天室截图与说明 2.1 用Java编译: 本代码有七个类,放在六个java文件中,类名在下方希望读者自己观看, 2.2 服务器登录界面 要先运行服务器端的程序 用户名:y 密码:1 用户名密码可以自己设定点击确定可以登录,2秒后到服务端界面 2.3 服务器窗口

聊天室的IP为本机的网络虚拟IP,在任何电脑上都能用,端口应设置在1024以后, 2.4 客服端登录界面 和服务器端的登录一样 2.5 客服端窗口

当登录上后客服端就显示已经连接了,此时服务器端的窗口如下

由于本程序设计的不是很完整,具体的聊天要先从客服端开始: 在客服端输入一条聊天内容后按确定,在服务器端就可以收到信息,之后客户端不能输入了,要等待服务器端来信息后才能继续输入信息. 想要结束聊天,直接可以关闭窗口,也可以输入’bye’后断开聊天

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

java版基于UDP协议网上聊天程序课程设计

湖南工业大学 课程设计 资料袋 计算机与通信学院学院(系、部)2013 ~ 2014 学年第 1 学期课程名称网络协议分析指导教师李建设职称副教授 学生姓名专业班级网络工程学号 题目基于UDP协议网上聊天程序 成绩起止日期2013 年11 月25 日~2013 年12 月13 日 目录清单

5 6 课程设计任务书 2013 —2014学年第1 学期 学院(系、部)计算机与通信学院专业网络工程班级102 课程名称:网络工程学生姓名: 设计题目:基于UDP协议网上聊天程序指导教师:李建设 完成期限:自2013 年11 月25 日至2013 年12 月13 日共 3 周 容 及 任 务 一、设计内容 实现一个基于UDP协议的简单的聊天程序,包括服务器和客户端。 1.支持多人聊天。 2.客户端具有图形化用户界面。 二、设计任务 课程设计说明书(纸质+电子版),内容包括:设计内容、系统分析(包括可行性分析、需求分析等)及功能分析;系统设计(要求画出系统整体功能框图、流程图、并给出相应地关键的代码且对所使用的主要数据结构进行说明等。)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 三、设计要求 1.按功能要求开发系统,能正确运行。程序代码书写规范,有充足的注释。 2.课程设计所使用的编程语言任选,但建议使用C或C++; 3.绿色软件:程序运行不需安装,避免写系统和注册表; 进 度 安 排 起止日期工作内容 2013-11-25~2013-11-3 选题 2013-12-1~2013-12-3 系统分析和设计; 2013-12-4~2013-12-8 熟悉软件开发工具、编码系统、系统测试 2013-12-9~2013-12-13 撰写并提交课程设计说明书(含电子文档)、源程序等。

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent. Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce. The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need. Keywords:LAN chat P2P java

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.360docs.net/doc/c07244803.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

java编写的简单的计算器程序

j a v a编写的简单的计 算器程序 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化

参考代码: import .*; import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

java聊天工具源代码.doc

v1.0可编辑可修改 源代码 项目 QQClientProject: LoguiGui 代码 : package class LoguiGui extends { public LoguiGui() { initComponents(); } public Socket connectServer() { Socket s = null; try { s = new Socket("", 6666); } catch (Exception e) { (); } return s; } private void jButton1ActionPerformed evt) { quals(name)) { (this, "用户名不能为空, 请输入 ", "异常提示", ; return; } String pwd = new String()); "密码: " + pwd); if () == 0) {

v1.0可编辑可修改 (this, "密码不能为空,请输入", "异常提示", ; return; } final Socket s = (); endMsg(msg, s); eceiveMsg(s); etVisible(true); } }); (); } else { (this, "登录失败:" + r, "异常提示", ; } private void jLabel3MouseClicked evt) { etVisible(true); } }); } RegiterGui代码: package class RegiterGui extends { private static final String url = "jdbc:odbc:mydata"; private static final String user = "mzz";

JAVA编写的计算器源代码

package jsq; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.UIManager; public class Test implements ActionListener { /** * */ JFrame f = new JFrame(); JTextField tf = new JTextField("0."); JMenuBar bar=new JMenuBar(); JMenu menuEdit=new JMenu("编辑(E)"); JMenu menuView=new JMenu("查看(V)"); JMenu menuHelp=new JMenu("帮助(H)"); JMenuItem menuEditCopy=new JMenuItem("复制(C)"); JMenuItem menuEditPaste=new JMenuItem("粘贴(V)"); JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)"); JPanel panel0 = new JPanel(); JPanel panel2 = new JPanel(); JPanel panel = new JPanel(); JPanel panel3 = new JPanel(); JPanel panel4 = new JPanel(); JPanel panel5 = new JPanel();

计算器JAVA源代码

计算器JAVA源代码 这是我在培训班时,学了一个月后编写的一个简易计算器的源代码。从设计、编码、实现该程序共用时一天(10个小时)。当时只是学完了JAVA的基础知识,各位也看得出,这里面没有用到高深的技术,全是基础的,所以我当时理解的就是:编程主要需要的是解决问题的思维、思想!现将其公布,希望能给初学者一点起示: [注:将考贝后,在JDK环境下可直接运行] [源代码] import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; class Jsqzj implements ActionListener { JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16; JFrame f; GridLayout c=new GridLayout(4,4); JTextField tf = new JTextField(); public void init() { f=new JFrame("CardLayout testing"); Container ct = f.getContentPane();

tf.setHorizontalAlignment(JTextField.RIGHT); ct.add(tf,"North"); JPanel p2=new JPanel(); ct.add(p2,"Center"); GridLayout c=new GridLayout(4,4); p2.setLayout(c); JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16; b1=new JButton("1"); b2=new JButton("2"); b3=new JButton("3"); b4=new JButton("4"); b5=new JButton("5"); b6=new JButton("6"); b7=new JButton("7"); b8=new JButton("8"); b9=new JButton("9"); b10=new JButton("0"); b11=new JButton("."); b12=new JButton("="); b13=new JButton("+"); b14=new JButton("-");

《Java聊天程序的设计与实现》

本科生毕业论文(设计)系(院)计算机科学学院专业计算机科学与技术 论文题目Java聊天程序的设计与实现 学生姓名车永华 指导教师苏炳均(副教授) (姓名及职称) 班级08级ACCP2班 学号08339311 完成日期:二0一一年十一月

Java聊天程序的设计与实现 车永华 计算机科学学院计算机科学与技术08339311 [摘要]:随着信息时代的来临,人们之间的交流也越来越趋向于网络。因此各种聊天工具的使用也是非常频繁,如MSN、QQ之类的聊天工具也被广泛使用。本文在研究局域网通信机制的原理和计算机网络编程基本原理的基础上,使用Java作为开发工具,开发出了一款在局域网中进行通信交流的软件。 [关键字]:Java 服务器端客户端数据传输 引言 当今主流的聊天工具有QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。你可以通过QQ和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。QQ支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。 虽然QQ软件是免费的,而且功能也是越来越强大。但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了Internet根本就是一个只能看不能用的软件,为了能在脱离了Internet的情况下使用的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。 1 开发工具概述 1.1什么是Java Java是一种可以跨平台应用的面向对象的程序设计语言,他是由Sun公司在

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

java实现聊天系统(计算机网络课程设计报告)

计算机网络课程设计报告 学生姓名 学号 班级 指导教师 设计时间

目录 第一章系统描述 设计目的 (3) 系统设计任务 (3) 系统设计分析 (3) 系统功能分析 (4) 第二章功能模块结构 模块划分 (5) 模块结构图 (5) 模块功能 (5) 第三章模块算法实现 服务器实现 (6) 客户端实现 (9) 第四章运行结果 (13) 第五章课程设计总结 (17) 第六章附录 参考文献 (19) 源代码 (19)

第一章系统描述 设计目的 1.学习网络编程的知识,掌握网络编程的方法。 2.进一步掌握编程思想与编程技巧,做到模块化程序设计, 3. 强化语言学习,尤其是Java的图形界面与多线程,需反复练习,熟练掌握。 系统设计任务 聊天室软件的设计与开发:基本要求可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表;进一步要求带表情,附件发送,聊天信息的加密传送,设置黑名单等。 学习通信编程Socket接口编程,使用TCP或UDP接口完成信息传送,利用多线程技术实现服务器端的多个TCP连接的建立。 系统设计分析 一.实现网络聊天室编程,关键在于Socket通信,程序的功能都是在Socket的基础上一层一层增加的。实现Socket通信的基本方法为以下4个步骤。 在客户端与服务器端创建相应的ServerSockot/Socket实例。 打开连接到Socket的输入输出流 利用输入输出流,按照一定的协议(TCP协议)对Socket进行读写操作 关闭输入输出流和Socket 我们要实现的功能都是在第3步对Socket的输入输出流做相应的操作 二.因为是多客户端,所以必须用线程进行控制,不同的处理线程为不同的客户服务,主线程只负责循环等待,处理线程负责网络连接,接受客户输入的信息,再做相应的处理。 系统功能分析

科学计算器程序Java代码

功能举例: 源程序如下: import import import import import import import import import import import import import import import import import import import public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;###");, new Dot(), ; addButton(panel2, "+", new Signs(), ; addButton(panel2, "tan", new Signs(), ; addButton(panel2, "%", new Signs(), ; addButton(panel2, "π", numActionListener, ; addButton(panel2, "e", numActionListener, ; addButton(panel2, "′″", new Signs(), ; addButton(panel2, "=", new Signs(), ; JButton btns = new JButton("计算器"); createLoweredBevelBorder()); false);rim()); (i)); }else if(str == "Backspace"){ if()) > 0){ if().length() > 1){ ().substring(0, ().length() - 1)); ength() > 2){ ().substring(0, ().length() - 1)); }else{

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

java聊天工具源代码

源代码 项目QQClientProject: LoguiGui代码: package com.huaxia.qq.mzz.gui; import https://www.360docs.net/doc/c07244803.html,mon.Message; import https://www.360docs.net/doc/c07244803.html,mon.MessageService; import https://www.360docs.net/doc/c07244803.html,er; import https://www.360docs.net/doc/c07244803.html,.Socket; import javax.swing.JOptionPane; public class LoguiGui extends javax.swing.JFrame { public LoguiGui() { initComponents(); } public Socket connectServer() { Socket s = null; try { s = new Socket("127.0.0.1", 6666); } catch (Exception e) { e.printStackTrace(); } return s; } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String name = nameItem.getText(); System.out.println("用户名:" + name); if (name == null || "".equals(name)) { JOptionPane.showMessageDialog(this, "用户名不能为空,请输入", "异常提示", JOptionPane.ERROR_MESSAGE); return; } String pwd = new String(pwdItem.getPassword()); System.out.println("密码:" + pwd); if (pwd.length() == 0) { JOptionPane.showMessageDialog(this, "密码不能为空,请输入", "异常提示", JOptionPane.ERROR_MESSAGE); return;

相关文档
最新文档