⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chat.java

📁 一个很好的Java环境的简易聊天程序。不需要服务器
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.net.*;

class Chat extends Frame
{
  DatagramSocket ds;
  List lst=new List(6);
  TextField tfIP=new TextField(15);
  TextField tfData=new TextField(20);
  public Chat()
  {
    try
    {
      ds=new DatagramSocket(3000); //建立Socket
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

    this.add(lst,"Center");
    Panel p=new Panel();
    this.add(p,"South");
    p.setLayout(new BorderLayout());
    p.add(tfIP,"West");
    p.add(tfData,"East");
    //以上是图形界面


	new Thread(new Runnable()
      {
       public void run()
        {
         byte[] buf=new byte[1024];
         DatagramPacket dp=new DatagramPacket(buf,1024);
         while(true)
          {
           try
            {
         ds.receive(dp);
           lst.add(new String(buf,0,dp.getLength())+"from"+dp.getAddress().getHostAddress()+":"+dp.getPort(),0); //增加到第一行
            }
            catch(Exception ex)
            {ex.printStackTrace();}
          }
        }

     }).start();

	//以下是动作处理,在消息文本框中输入信息后,按Enter就可以把消息发送出去
    //因此,需要处理Action事件
    tfData.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent e)
      {
        byte[] buf;
        buf=tfData.getText().getBytes();
        try
        {
        DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
        ds.send(dp);
        }
        catch(Exception ef)
        {
          ef.printStackTrace();
        }
        tfData.setText(""); //信息发送后,消息文本框中的信息清空
      }

    });
    addWindowListener(new WindowAdapter()
    {
      public void windowClosing(WindowEvent e)
      {
        ds.close();
        dispose();
        System.exit(0);
      }
    });
  }
  
  public static void main(String args[])
  {
   System.out.println("Starting Chat.......");
   Chat mainFrame=new Chat();
   mainFrame.setSize(300,400); //窗口大小为300X400
   mainFrame.setTitle("我们的聊天窗口"); //标题栏信息
   mainFrame.setVisible(true);
   mainFrame.setResizable(false);// 窗口大小不能改变
  }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -