Java serve_ client聊天之client端(合工大java实验四)by峰宇
来源:互联网 发布:空气相对湿度计算软件 编辑:程序博客网 时间:2024/05/16 10:45
package client;import server.Myframe;public class client {public static void main(String[] args) { Myframec myframe=new Myframec("客户v放大端端", 400, 50, 600, 600);}}
package client;import java.awt.BorderLayout;import java.awt.HeadlessException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.Socket;import java.net.UnknownHostException;import java.util.Date;import javax.swing.JButton;import javax.swing.JEditorPane;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextPane;import javax.swing.text.BadLocationException;import javax.swing.text.SimpleAttributeSet;import javax.swing.text.StyledDocument;import Messagemy.Messagemy;public class Myframec extends JFrame {DataInputStream dataInputStream;DataOutputStream dataOutputStream;Socket socket;BorderLayout bLayout;JLabel areaip;JLabel areaport;JEditorPane jEditorPaneport;JEditorPane jEditorPaneip;JButton jButtonP;JLabel areaxia;JEditorPane jEditorPanexia;JButton jButtonPxia;JTextPane Jzhongshow;public Myframec(String title, int x, int y, int w, int h)throws HeadlessException {super(title);setLocation(x, y);setSize(w, h);init();this.setVisible(true);}private void init() {areaip = new JLabel("IP");jEditorPaneip = new JEditorPane();areaport = new JLabel("端口");jEditorPaneport = new JEditorPane();jButtonP = new JButton("确定");jButtonP.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// int p=10000;// String ip="127.0.0.1";int p = Integer.valueOf(jEditorPaneport.getText().toString());String ip = jEditorPaneip.getText().toString();try {Clientchat clientchat = new Clientchat(ip, p);clientchat.start();} catch (UnknownHostException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}});JPanel jshang = new JPanel();jshang.add(areaip);jshang.add(jEditorPaneip);jshang.add(areaport);jshang.add(jEditorPaneport);jshang.add(jButtonP);Jzhongshow = new JTextPane();JScrollPane jScrollPanezhong = new JScrollPane(Jzhongshow);Jzhongshow.setEditable(false);areaxia = new JLabel("Say");jEditorPanexia = new JEditorPane();jButtonPxia = new JButton("发送");jButtonPxia.addActionListener(new sendmessege());JPanel jxia = new JPanel();jxia.add(areaxia);jxia.add(jEditorPanexia);jxia.add(jButtonPxia);add(jshang, BorderLayout.NORTH);add(jScrollPanezhong, BorderLayout.CENTER);add(jxia, BorderLayout.SOUTH);}public class sendmessege implements ActionListener {@Overridepublic void actionPerformed(ActionEvent e) {String message = jEditorPanexia.getText().toString();Date date = new Date();String namem = "我";Messagemy messagemy = new Messagemy(namem, date, message);try {dataOutputStream.writeUTF(message);dataOutputStream.flush();insertmaserge(messagemy);jEditorPanexia.setText("");} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}private void insertmaserge(Messagemy messagemy) {StyledDocument doc = Jzhongshow.getStyledDocument();SimpleAttributeSet attr = new SimpleAttributeSet();String s = messagemy.getDate() + " " + '\n';String p = messagemy.getName() + " : " + messagemy.getMessage() + '\n';try {doc.insertString(doc.getLength(), s, attr);doc.insertString(doc.getLength(), p, attr);doc.insertString(doc.getLength(), "\n", attr);Jzhongshow.setCaretPosition(Jzhongshow.getDocument().getLength());} catch (BadLocationException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public class Clientchat extends Thread {public Clientchat(String ip, int p) throws UnknownHostException,IOException {socket = new Socket(ip, p);dataInputStream = new DataInputStream(socket.getInputStream());dataOutputStream = new DataOutputStream(socket.getOutputStream());}@Overridepublic void run() {while (true) {try {String s = dataInputStream.readUTF();Date date = new Date();String namem = "他";Messagemy messagemy = new Messagemy(namem, date, s);insertmaserge(messagemy);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
package Messagemy;import java.util.Date;public class Messagemy {private String name;private Date date;private String message;public Messagemy(String name, Date date, String message) {this.name = name;this.date = date;this.message = message;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}
0 0
- Java serve_ client聊天之client端(合工大java实验四)by峰宇
- Java serve_ client聊天之serve端(合工大java实验四)by峰宇
- Memcache-Java-Client-Release源码阅读(之四)
- java 简单的局域网聊天(带界面)Client
- Java Socket client端
- java client
- Java编程 之Socket Client
- elasticsearch-java api之client
- 用Java实现Server-Client结构的聊天系统
- Java: 写个简单的Client,Server聊天程序
- 用Java实现Server-Client结构的聊天系统
- 用Java实现Server-Client结构的聊天系统
- JAVA socket Client端代码
- java socket 编程(Client)
- 【Little_things】事件驱动的带界面的Client/Server聊天小程序(java socket)
- Memcache-Java-Client-Release源码阅读(之二)
- Memcache-Java-Client-Release源码阅读(之三)
- Memcache-Java-Client-Release源码阅读(之五)
- 一种 IM 删除信息的恢复方法
- linux C++ 进程间共享内存以及临界区的实现
- 【Android Net】Volley实现(multipart/form-data)Post请求
- 整合ssh框架的具体步骤
- Python实例属性和类属性的区别
- Java serve_ client聊天之client端(合工大java实验四)by峰宇
- 读数学之美——统计语言模型(马尔科夫)
- 认识自己——不要小偷小摸不要委屈自己
- ios-day24-01(SQLite数据库之SQL语句:建表、删表、CRUD、主键约束、排序、条件语句等等)
- android 通过组件属性动态创建控件并设置布局
- PHYSICALLY-BASED 小镇的demo
- FMDB
- 解析struts.xml
- 《大话设计模式》--世界需要和平--中介者模式<Mediator>(25)