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