java即时在线聊天(一)
来源:互联网 发布:淘宝数据魔方论坛 编辑:程序博客网 时间:2024/04/30 18:24
今天模仿着马士兵老师的视频,做了一个即时在线聊天。此时拿出来与大家分享,做的不太好,请大家凑合着看吧
import java.awt.Frame;public class ChatClient extends Frame {/** * @param args */public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);setVisible(true);}}
效果图
以上只是一个简单的布局,没什么实质性代码。下面给大家讲第二部分
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;public class ChatClient extends Frame {TextField tftext=new TextField();TextArea taContent=new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame(){this.setLocation(400, 400);this.setSize(300, 300);add(tftext,BorderLayout.SOUTH);add(taContent,BorderLayout.NORTH);pack();setVisible(true);}}
第二次比着第一次多了一个输入框。此时只能用右下角的红色按钮关闭。
如图 红色的小正方形
Chat0.3
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class ChatClient extends Frame {TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});setVisible(true);}}
相对Chat0.2,Chat0.3只多了一个点“X”就可以关闭的功能。不再上图。
Chat0.4
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class ChatClient extends Frame {TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});tftext.addActionListener(new TFListener());setVisible(true);}private class TFListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String s=tftext.getText().trim();taContent.setText(s);tftext.setText("");}}}
Chat0.4在输入框内输入内容后按回车键可以直接发送。
Chat0.5比0.4多了一个服务端。废话不多说,直接上代码。
import java.io.IOException;import java.net.ServerSocket;public class ChatServer {public static void main(String[] args) {try {ServerSocket ss=new ServerSocket(8888);} catch (IOException e) {e.printStackTrace();System.out.println("a client connected");}}}
ChatClient.java
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class ChatClient extends Frame {TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});tftext.addActionListener(new TFListener());setVisible(true);}private class TFListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String s=tftext.getText().trim();taContent.setText(s);tftext.setText("");}}}Chat0.6
ChatServer.java
import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ChatServer {public static void main(String[] args) {try {ServerSocket ss=new ServerSocket(8888);while(true){Socket s=ss.accept();System.out.println("a client connected");}} catch (IOException e) {e.printStackTrace();}}}
ChatClient.java
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;public class ChatClient extends Frame {TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});tftext.addActionListener(new TFListener());setVisible(true);connect();}public void connect(){try {Socket s=new Socket("127.0.0.1",8888);System.out.println("connect");} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private class TFListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String s=tftext.getText().trim();taContent.setText(s);tftext.setText("");}}}
Chat0.7
ChatServer.java
import java.io.DataInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ChatServer {public static void main(String[] args) {try {ServerSocket ss=new ServerSocket(8888);while(true){Socket s=ss.accept();System.out.println("a client connected"); DataInputStream dis=new DataInputStream(s.getInputStream()); String str=dis.readUTF(); dis.close(); System.out.println(str);}} catch (IOException e) {e.printStackTrace();}}}
ChatClient.java
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;public class ChatClient extends Frame {Socket s=null;TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});tftext.addActionListener(new TFListener());setVisible(true);connect();}public void connect(){try { s=new Socket("127.0.0.1",8888);System.out.println("connect");} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}private class TFListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String str=tftext.getText().trim();taContent.setText(str);tftext.setText("");try {DataOutputStream dos=new DataOutputStream(s.getOutputStream());dos.writeUTF(str);dos.flush();dos.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}}Chat0.8
ChatServer.java
import java.io.DataInputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class ChatServer {public static void main(String[] args) {Boolean started=false;try {ServerSocket ss=new ServerSocket(8888);started=true;while(started){ Boolean bconnect=false;Socket s=ss.accept();System.out.println("a client connected"); bconnect=true; DataInputStream dis=new DataInputStream(s.getInputStream()); while(bconnect){ String str=dis.readUTF(); System.out.println(str); } dis.close(); }} catch (IOException e) {e.printStackTrace();}}}
ChatClient.java
import java.awt.BorderLayout;import java.awt.Frame;import java.awt.TextArea;import java.awt.TextField;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;public class ChatClient extends Frame {Socket s=null;DataOutputStream dos=null;TextField tftext = new TextField();TextArea taContent = new TextArea();public static void main(String[] args) {new ChatClient().lanchFrame();}public void lanchFrame() {this.setLocation(400, 400);this.setSize(300, 300);add(tftext, BorderLayout.SOUTH);add(taContent, BorderLayout.NORTH);pack();this.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {disconnect();System.exit(0);}});tftext.addActionListener(new TFListener());setVisible(true);connect();}public void connect(){try { s=new Socket("127.0.0.1",8888); dos=new DataOutputStream(s.getOutputStream());System.out.println("connect");} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public void disconnect(){try {dos.close();s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}private class TFListener implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String str=tftext.getText().trim();taContent.setText(str);tftext.setText("");try {dos.writeUTF(str);dos.flush();//dos.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}}
最终效果图
可以输入多个,Service可以接收多个。
0 0
- java即时在线聊天(一)
- 在线聊天.NET源码 即时
- QT 即时聊天软件(一)
- 即时聊天社交软件 (一)
- SignalR实现web在线即时聊天(C#)
- java Socket实现简单在线聊天(一)
- java Socket实现简单在线聊天(一)
- asp.net 网页在线即时聊天
- tomcat websocket 实现网页在线即时聊天
- 融云(即时聊天)
- Pushlet单播开发Web坐席即时聊天(一)
- Android即时通讯--仿QQ即时聊天:(一)初识Socket
- 基于WIFI direct的即时聊天app开发(一)
- Whoere即时聊天App(一)项目综述
- 即时聊天,在线客服,在线咨询,源码,原码,聊天室,开源,IM,免费,控件,在线聊天
- openfire即时聊天(一):openfire+spark客户端
- 在线即时通讯工具的网页即时聊天的html代码
- 即时聊天
- TOMCAT SSL配置
- 如何快速的把日志输出到磁盘上
- 斐波那契数列第N项(大数)
- 移植X264成功
- 总结linux中管线和数据流重导向的详解及区别
- java即时在线聊天(一)
- AJAX跨域请求数据原理与案例
- Django模板系统——过滤器
- 陈老师的多校联合 20140809 C题
- poj 1639 度限制生成树(小矮人野餐)
- HDU1097:A hard puzzle(快速幂求模)
- 统计文章出现最多的10个词语--python实现
- DICOM医学图像处理:DCMTK在VS2012中的配置
- Spring 事务最常用配置