这是服务端:

package server;

import javax.swing.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.util.Calendar;

public class Server extends JFrame implements ActionListener{

static JTextArea jta=null;

JTextField jtf=null;

JScrollPane jsp=null;

JButton jb_send=null;

JPanel jp=null;

static Socket socket=null;

static String text_message;

public static void main(String[] args) throws IOException {

ServerSocket server=null;

new Server();

try

{

server=new ServerSocket(8001);

socket=server.accept();

}

catch(Exception e)

{

System.out.println("不能监听:"+e);

}

while(true)

{

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

jta.append(br.readLine()+"\n");

}

}

public Server(){

jta=new JTextArea();

jta.setEditable(false);

jsp=new JScrollPane(jta);

jtf=new JTextField(20);

jp=new JPanel();

jb_send=new JButton("发送");

jb_send.addActionListener(this);

jp.add(jtf);

jp.add(jb_send);

this.add(jsp,"Center");

this.add(jp,"South");

this.setTitle("服务端");

this.setSize(300, 200);

this.setLocation(318,186);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

if(e.getSource()==jb_send)

{

if(jtf.getText().equals(""))

{

JOptionPane.showMessageDialog(null, "消息不能为空");

}

else

{

text_message=jtf.getText();

jta.append("服务端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message+"\n");

PrintWriter pw;

try

{

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

if(!text_message.equals(""))

{

pw.println("服务端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message);

}

}

catch (IOException e1)

{

e1.printStackTrace();

}

jtf.setText("");

}

}

}

}

这是客户端:

package client;

import java.io.*;

import java.net.*;

import java.util.*;

import java.awt.event.*;

import javax.swing.*;

public class Client extends JFrame implements ActionListener{

static JTextArea jta=null;

JTextField jtf=null;

JPanel jp=null;

JButton jb_send=null;

JScrollPane jsp=null;

static String text_message;

static Socket socket=null;

public static void main(String[] args) throws IOException {

new Client();

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

while(true)

{

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

jta.append(is.readLine()+"\n");

}

}

public Client()

{

jta=new JTextArea();

jta.setEditable(false);

jtf=new JTextField(20);

jb_send=new JButton("发送");

jb_send.addActionListener(this);

jp=new JPanel();

jsp=new JScrollPane(jta);

jp.add(jtf);

jp.add(jb_send);

this.add(jsp,"Center");

this.add(jp,"South");

this.setTitle("客户端");

this.setSize(300, 200);

this.setLocation(636,186);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==jb_send)

{

if(jtf.getText().equals(""))

{

JOptionPane.showMessageDialog(null, "消息不能为空");

}

else

{

text_message=jtf.getText();

try

{

PrintWriter pw=null;

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

if(!text_message.equals(""))

{

pw.println("客户端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message);

}

}

catch(Exception e1)

{

e1.printStackTrace();

}

jta.append("客户端: "+Calendar.getInstance().getTime().toLocaleString()+" "+text_message+"\n");

jtf.setText("");

}

}

}

}

下面是效果图:

java 聊天室界面_java图形界面聊天室简版相关推荐

  1. java 按钮不显示_JAVA图形界面,按钮为什么显示不出来?

    JAVA图形界面,按钮为什么显示不出来? 来源:互联网  宽屏版  评论 2009-10-22 02:51:03 分类: 电脑/网络 >> 软件 问题描述: import javax.sw ...

  2. java swing 获当前日期_Java图形界面Swing下日期控件

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java自学-图形界面 日期控件 两种Swing下的日期控件 DatePick ...

  3. java 图形化库_java图形界面之图形化按钮

    要将按钮图形化,只需创建一个ImageIcon对象,将图形路径赋予ImageIcon对象,然后将该对象传递给按钮即可. 此处涉及eclipse中图形的路径设置,包括(项目路径下.非项目路径下.相对路径 ...

  4. java 记事本界面_Java图形界面开发之简易记事本

    在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: packa ...

  5. java图形界面详解_JAVA 图形界面开发基础详解

    与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...

  6. linux命令切换界面,Linux图形界面与命令行界面切换

    1.没有安装图形界面的Linux系统执行下面命令安装图形界面: yum groupinstall "GNOME Desktop" "Graphical Administr ...

  7. Linux启动界面切换:图形界面-字符界面(转)

    Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面输入startx或init 5 . 2.通过编辑/etc/inittab文件实现默认进入图形界面. 把其 ...

  8. Linux字符界面和图形界面

    Ubuntu图形界面和字符界面的切换 Ubuntu和其他的Linux系统一样,有图形界面和字符界面,同时能够设置默认的启动界面. linux的显示界面分为命令行的字符界面和图形界面,我们可以设置lin ...

  9. 【Linux使用】Centos 7安装图形界面/切换文本界面与图形界面

    文章目录 安装图形界面 切换到文本界面 切换到图形界面 检查默认的界面 设置默认为图形界面 设置默认为文本界面 安装图形界面 -bash-4.2$ sudo yum -y groups install ...

最新文章

  1. math java 计算_Java中的数学计算函数汇总
  2. oracle 修索引改空间_oracle 修改索引现有表空间
  3. 分层总和法matlab,高填方路基沉降检测之回归法
  4. FFmpeg 和 MP4Box 几个命令
  5. 【钢结构·技术】国内经典的钢结构建筑BIM应用
  6. qq音速显示服务器断开,《QQ音速》常见问题问答汇总
  7. Ffmpeg 视频教程 向视频中添加文字
  8. Centos Web Proxy(nginx)配置
  9. 【面试记录】北京亚控科技一面
  10. 运营商精准大数据外呼系统
  11. ubuntu php mysql 乱码,ubuntu 服务器字符乱码问题
  12. node抓取58同城信息_如何使用标准库和Node.js轻松抓取网站以获取信息
  13. MySql基础之面试查询语句
  14. Teach repeat replan 安装中遇到的问题记录
  15. 里氏代换原则——及之我见
  16. 如何训练GAN?训练GAN的技巧和方法
  17. web前端网页美化重器-------css
  18. goland下载与安装教程(详细)
  19. 包青天人声接电话搞笑版铃声 包青天人声接电话搞笑版手机铃声...
  20. python 日期字符串转换时间戳

热门文章

  1. LOJ 6281 数列分块入门 5
  2. 外网访问内网Oracle数据库
  3. 我所理解的JVM(三):字节码的执行
  4. 动态切换view视图viewflipper组件
  5. 玩转“网上邻居”之网络配置(一)
  6. EChart绘制风速风向曲线分析图
  7. Luogu-P1018 乘积最大
  8. 从0到1搭建spark集群---企业集群搭建
  9. JavaScript之ajax
  10. hdu1161 欧拉路