该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

package cn.client.pc;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintStream;

import java.net.InetAddress;

import java.net.Socket;

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 Client extends JFrame {

static JTextArea jta;

privateJTextField jtf;

private PrintStream writer;

public Client(){

this.setTitle("客户端");

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

this.setLocationRelativeTo(null);

this.setLayout(new BorderLayout());

//创建组件

JPanel jp=new JPanel();

jta=new JTextArea(10,30);

jta.setBackground(Color.pink);

jta.setLineWrap(true);

jta.setWrapStyleWord(true);

jta.setFont(new Font("楷体",Font.BOLD,20));

jtf=new JTextField(20);

jtf.addKeyListener(new KeyListener(){

@Override

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

if(e.getKeyCode()==KeyEvent.VK_ENTER){

print();

}

}

@Override

public void keyReleased(KeyEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void keyTyped(KeyEvent arg0) {

// TODO Auto-generated method stub

}

});

JButton jb=new JButton("发送");

jb.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

print();

}

});

jp.add(jtf);

jp.add(jb);

this.add(new JScrollPane(jta),BorderLayout.CENTER);

this.add(jp,BorderLayout.SOUTH);

this.pack();

this.setVisible(true);

}

//输出信息

public void print(){

String s=jtf.getText();

if(s!=null){

writer.println(s);

jta.append(jtf.getText()+"\n");

}

jtf.setText("");

}

public void lianjie(){

BufferedReader br=null;

try {

Socket socket=new Socket("localhost",8800);

this.writer=new PrintStream(socket.getOutputStream(),true);

br=new BufferedReader(new InputStreamReader(socket.getInputStream()));

while(true){

jta.append(InetAddress.getLocalHost().getHostName()+":"+ br.readLine()+"\n");

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static void main(String[] args) {

new Thread(new TimeClient()).start();

new Client().lianjie();

}

}

java聊天系统异常问题_【图片】写的socket编程实现窗口聊天出现空指针错误 在自己电脑没事【java吧】_百度贴吧...相关推荐

  1. java web接收tcp_Java多线程实现TCP网络Socket编程(C/S通信)

    开篇必知必会 在前一篇<基于TCP协议网络socket编程(java实现C/S通信)>,实际存在一个问题,如果服务器端在建立连接后发送多条信息给客户端,客户端是无法全部接收的,原因在于客户 ...

  2. java聊天系统异常问题_聊天室bug问题

    1.页面一直在index.jsp,因为input表单里的name写成valuele了 2.history.go(0); 3.头文件不能随便删,中转文件的才能删 4.每取一次application,就要 ...

  3. 台式电脑网络连接配置异常_用360体检提示:发现网络连 接配置错误?台式机电脑上不了网用360断网急救箱检测总是网络连接配置...

    在上一篇文章中,小编为您详细介绍了关于<求I7高配要求所有高显示游戏通吃?台式电脑主机清理灰尘后>相关知识.本篇中小编将再为您讲解标题用360体检提示:发现网络连 接配置错误?台式机电脑上 ...

  4. 1.16 Java的异常跟踪栈

    异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程. 看下面用 ...

  5. Java的异常跟踪栈

    异常对象的 printStackTrace() 方法用于打印异常的跟踪栈信息,根据 printStackTrace() 方法的输出结果,开发者可以找到异常的源头,并跟踪到异常一路触发的过程. 看下面用 ...

  6. 写java线程导致电脑内存不足_如何写出让java虚拟机发生内存溢出异常OutOfMemoryError的代码...

    程序小白在写代码的过程中,经常会不经意间写出发生内存溢出异常的代码.很多时候这类异常如何产生的都傻傻弄不清楚,如果能故意写出让jvm发生内存溢出的代码,有时候看来也并非一件容易的事.最近通过学习< ...

  7. java 爬取图片_使用Java多线程爬取网站图片

    使用Java爬取网站的图片并保存至本地 使用maven导入依赖org.jsoup jsoup 1.11.2 实现代码:import org.jsoup.HttpStatusException; imp ...

  8. java常见异常思维导图_21_异常_第21天(异常、企业面试题,思维导图下载)

    今日内容介绍 1.异常概述和继承体系 2.异常原因以及处理方式 3.运行时期异常 4.方法重写的异常处理 5.Throwable类常见方法 6.自定义异常 01异常的概述 * A: 异常的概述 * a ...

  9. 查看java线程是否退出_[原创]IDA调试阻止java线程异常退出

    IDA调试阻止java线程异常退出 最近在使用IDA调试分析某款产品遇见了一个头痛的问题,因为程序核心功能在native层实现的,所以主要的侧重点是分析so文件,但是在分析的时候总是出现java线程异 ...

最新文章

  1. 1137 - Sin your life sin公式 + 枚举
  2. 判断一个图是否为树(有向图以及无向图)
  3. 离职交接文档_如何写好离职工作交接文档?
  4. 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)
  5. wcf寄宿iis7是的 500错误
  6. spring aop JointPoint类
  7. Java技术分享:Java基本数据类型
  8. winScp中文乱码设置
  9. 前端学习(2476):表单数据绑定处理
  10. php中浮点数四舍五入,php浮点数四舍五入函数
  11. ArcGIS AddIN异常:无法注册程序集 未能加载文件或程序集ESRI.ArcGIS.Desktop.Addins
  12. 【软件工程】-项目开发计划
  13. Nginx-免费SSL证书申请
  14. 全局最小割集Stoer-Wagner算法
  15. web前端基础——媒体查询
  16. 靶基因高通量测序建库流程介绍
  17. bash: No such file or directory
  18. app上架vivo应用商店流程
  19. 清理docker产生的垃圾文件
  20. 嵩天-Python语言程序设计程序题--第六周:组合数据类型

热门文章

  1. 【zookeeper】zookeeper 脑裂问题
  2. 【Flink】Flink checkpoint expired before completing
  3. 如何打包部署 Spring Boot 项⽬
  4. kylin启动:Failed to create /kylin
  5. java的代理Proxy.newProxyInstance
  6. scala学习-12-scala读取java项目下Src目录下的properties文件
  7. 云计算教程学习入门视频课件:云计算基础服务组件讲解
  8. linux编写随机数脚本,Shell使用RANDOM编写1-10以内随机数
  9. 2020最新,100道电商大厂必问面试题:附完整答案
  10. 10个类手写实现 RPC 通信框架原理