java 即时消息提醒//原代码需要编译
package com.imti.chatdemo;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.Date;
/**
*简易网络聊天类
*@1.0版 2009年2月21日
*@author liangzhuoxun
*/
public class Chat extends JFrame implements ActionListener,Runnable
{
JPanel pane1,pane2;//声明面板
JLabel label,label2,label3;//声明标签
JTextField tfield1,tfield2,tfield3;//声明文本框
JTextArea tarea;//声明文本域
JScrollPane scroll;//声明带滚动条java即时消息源代码的文本域
JButton button,buttont;//声明按钮
String str1,str2,info,s;
Thread thread;
DatagramPacket dp1,dp2;
DatagramSocket ds1,ds2;
/**
*构造方法
*/
public Chat()
{
super("简易聊天工具-作者:liangzhuoxun");
//文本域
tarea=new JTextArea(15,47);
scroll=new JScrollPane(tarea,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//标签 文本框面板
pane1=new JPanel();//初始化面板
label=new JLabel("聊天内容:");
tfield1=new JTextField(25);
button=new JButton("发送");
buttont=new JButton("清空聊天内容");
button.addActionListener(this);//添加事件处理器
buttont.addActionListener(this);
tfield1.addKeyListener(
/**
*该匿名类是继承键盘适配器重写按键方法达到将文本框内容输入文本域
*/
new KeyAdapter()
{
public void keyPressed(KeyEvent kevent)
{
str1=new String(tfield1.getText());
if(kevent.getKeyCode()==KeyEvent.VK_ENTER)//判断回车键
{
Integer i=new Integer(tfield3.getText());
try
{
sends();//发送方法
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
);
pane1.add(label);//面板中添加标签
pane1.add(tfield1);//面板中添加文本框
pane1.add(button);//添加按钮
pane1.add(buttont);
pane2=new JPanel();
tfield2=new JTextField("127.0.0.1",15);
tfield3=new JTextField("5000",5);
label2=new JLabel("输入发送java即时消息源代码的目的地:");
label3=new JLabel(" 端口号:");
pane2.add(label2);
pane2.add(tfield2);
pane2.add(label3);
pane2.add(tfield3);
this.add(pane2,"North"); //设置窗口布局
this.add(scroll,"Center");//窗口中添加带滚动条文本域
this.add(pane1,"South");//窗口中添加面板
this.setBounds(100,150,550,400);//设置窗口位置和大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭按钮方式
this.show(); //窗口可视
Thread thread=new Thread(this);
thread.start();
}
/**
*实现按钮发送的方法
*/
public void actionPerformed(ActionEvent event)
{
str2=new String(event.getActionCommand());
if(str2.equals("发送"))
{
try
{
sends();//发送方法
}
catch(Exception e)
{
e.printStackTrace();
}
}else if(str2.equals("清空聊天内容"))
{
Toolkit.getDefaultToolkit().beep();//调用"滴"声音
tarea.setText("");
JOptionPane.showMessageDialog(null,"清空完成!!!");//对话框
}
}
/**
*发送信息的方法
*/
public void sends() throws Exception
{
str1=new String(tfield1.getText());
Integer i=new Integer(tfield3.getText());
ds1=new DatagramSocket();
dp1=new DatagramPacket(str1.getBytes(),(str1.getBytes()).length,
InetAddress.getByName(tfield2.getText()),i);
ds1.send(dp1);
ds1.close();
int len=(tarea.getText()).length();//求出文本域里已有内容长度
Date time=new Date();
推荐阅读
- 直播话术瑜伽裤,搜索瑜伽直播
- 小米电视3安卓软件怎么用,小米电视三方软件在哪
- 如何做营销短信发送,如何发营销短信内容
- 新媒体直播运营的工作如何,新媒体主播运营职位咋样
- go语言结合php go和php
- 关于营销号如何扒皮的信息
- 怎么转发砍价小程序,怎么把砍价小程序转成链接
- 连接蓝牙命Linux命令 linux命令行蓝牙
- 大壮阿秀唐三什么电视的简单介绍