Java版仿QQ聊天客户端与服务器端

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package 聊天工具;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.io.IOException;

import java.io.PrintWriter;

import .Socket;

import .UnknownHostException;

import java.util.Scanner;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

//客户端程序

public class MyClient extends JFrame implements ActionListener{

/**

*

*/

private static final long serialVersionUID = 1L;

JTextArea jta;

JTextField jtf;

JButton jb;

JPanel jp;

Socket socket;

//网络输入流

Scanner sc;

//网络输出流

PrintWriter pw;

public MyClient()

{

jta = new JTextArea();

jtf = new JTextField(15);

jb = new JButton("发送");

jp = new JPanel();

jta.setEditable(false);

jp.add(jtf);

jp.add(jb);

JScrollPane jsp = new JScrollPane(jta);

this.add(jsp,BorderLayout.CENTER);

this.add(jp,BorderLayout.SOUTH);

jb.addActionListener(this);

jtf.addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

if(e.getKeyCode()==10){

pw.println(jtf.getText());

//向多行文本框输入历史聊天记录信息

jta.append("客户端说:"+jtf.getText()+"\r\n");

//清空单行文本框内容

jtf.setText("");

}

}

});

//展现

this.setTitle("客户端");

this.setSize(300,200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);

try {

//建立连接

socket = new Socket("127.0.0.1",1680);

//网络输入流

sc = new Scanner(socket.getInputStream());

//网络输出流

pw = new PrintWriter(socket.getOutputStream(),true);

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

while(true)

{

//接受服务器发送数据

String str = sc.nextLine();

//显示在多行文本框

jta.append("服务器说:"+str+"\r\n");

}

}

public static void main(String[] args) {

new MyClient();

}

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()==jb)

{

//向服务器发送数据

pw.println(jtf.getText());

//显示在多行文本框

jta.append("客户端说:"+jtf.getText()+"\r\n");

//清空单行文本框

jtf.setText("");

}

}

}

package 聊天工具;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.io.IOException;

import java.io.PrintWriter;

import .ServerSocket;

import .Socket;

import java.util.Scanner;

相关文档
最新文档