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;//声明带滚动条的文本域
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("输入发送的目的地:");
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();
//将发送内容放置文本域里
推荐阅读
- 为什么电视要叫电视,为什么电视要叫电视呢
- 现在都用的什么苹果手机,现在流行什么苹果手机
- 快手直播礼物可以挣多少,快手直播礼物主播能拿多少
- java写留言源代码 javaweb留言板代码
- 包含华为nava7pro鸿蒙系统升级的词条
- oracle安装之后怎么启动不了,安装完oracle
- 快速设置代理,设置代理快捷键
- python传入比较函数 python比较语句
- sap成品扫描入库流程,sap成品入库操作