java 聊天室界面_java图形界面聊天室简版
这是服务端:
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图形界面聊天室简版相关推荐
- java 按钮不显示_JAVA图形界面,按钮为什么显示不出来?
JAVA图形界面,按钮为什么显示不出来? 来源:互联网 宽屏版 评论 2009-10-22 02:51:03 分类: 电脑/网络 >> 软件 问题描述: import javax.sw ...
- java swing 获当前日期_Java图形界面Swing下日期控件
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java自学-图形界面 日期控件 两种Swing下的日期控件 DatePick ...
- java 图形化库_java图形界面之图形化按钮
要将按钮图形化,只需创建一个ImageIcon对象,将图形路径赋予ImageIcon对象,然后将该对象传递给按钮即可. 此处涉及eclipse中图形的路径设置,包括(项目路径下.非项目路径下.相对路径 ...
- java 记事本界面_Java图形界面开发之简易记事本
在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: packa ...
- java图形界面详解_JAVA 图形界面开发基础详解
与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk ...
- linux命令切换界面,Linux图形界面与命令行界面切换
1.没有安装图形界面的Linux系统执行下面命令安装图形界面: yum groupinstall "GNOME Desktop" "Graphical Administr ...
- Linux启动界面切换:图形界面-字符界面(转)
Linux字符界面切换到图形界面 由字符界面切换到图形界面可用两种简单方法实现: 1.在字符界面输入startx或init 5 . 2.通过编辑/etc/inittab文件实现默认进入图形界面. 把其 ...
- Linux字符界面和图形界面
Ubuntu图形界面和字符界面的切换 Ubuntu和其他的Linux系统一样,有图形界面和字符界面,同时能够设置默认的启动界面. linux的显示界面分为命令行的字符界面和图形界面,我们可以设置lin ...
- 【Linux使用】Centos 7安装图形界面/切换文本界面与图形界面
文章目录 安装图形界面 切换到文本界面 切换到图形界面 检查默认的界面 设置默认为图形界面 设置默认为文本界面 安装图形界面 -bash-4.2$ sudo yum -y groups install ...
最新文章
- math java 计算_Java中的数学计算函数汇总
- oracle 修索引改空间_oracle 修改索引现有表空间
- 分层总和法matlab,高填方路基沉降检测之回归法
- FFmpeg 和 MP4Box 几个命令
- 【钢结构·技术】国内经典的钢结构建筑BIM应用
- qq音速显示服务器断开,《QQ音速》常见问题问答汇总
- Ffmpeg 视频教程 向视频中添加文字
- Centos Web Proxy(nginx)配置
- 【面试记录】北京亚控科技一面
- 运营商精准大数据外呼系统
- ubuntu php mysql 乱码,ubuntu 服务器字符乱码问题
- node抓取58同城信息_如何使用标准库和Node.js轻松抓取网站以获取信息
- MySql基础之面试查询语句
- Teach repeat replan 安装中遇到的问题记录
- 里氏代换原则——及之我见
- 如何训练GAN?训练GAN的技巧和方法
- web前端网页美化重器-------css
- goland下载与安装教程(详细)
- 包青天人声接电话搞笑版铃声 包青天人声接电话搞笑版手机铃声...
- python 日期字符串转换时间戳