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

📄 chat.java

📁 用java写的画图板程序
💻 JAVA
字号:
/**
 * 	Chat.java
 * 
 *  Created on September 6,2008, 15:13
 *  
 *  聊天类,用于实现聊天的功能,p2p技术实现
 */

package draw;

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;

/**
 * @author 王宽
 *
 */
public class Chat extends JFrame {
		JTextArea dataList=new JTextArea();
		JTextField Tfip = new JTextField(18);
		JTextField Tfdata = new JTextField(19); 
    	JLabel Lip=new JLabel("输入对方的IP地址:");
    	JLabel Ldata=new JLabel("输入聊天的内容:");
    	DatagramSocket socket=null;
      /**
       * 构造一个聊天的交互界面
       */  
       public  void go() {
        try
        {      
        socket=new DatagramSocket(5000);
        }
        catch(Exception e)
        {
         e.printStackTrace();
       
        }
      
        Tfip.setSize(150,15);
        Tfdata.setSize(150,15);
        //Tfip.setFocusable(true);
        Tfip.setForeground(Color.blue);
        Tfdata.setForeground(Color.red);
        dataList.setForeground(Color.black);
        this.getContentPane().add(new JScrollPane(dataList),"Center");
        JPanel p = new JPanel();
        JPanel p1 = new JPanel();
        JPanel p2 = new JPanel();
        p.setLayout(new BorderLayout());
        p1.setLayout(new BorderLayout());
        p2.setLayout(new BorderLayout());     
        p1.add(Lip,"West");
        p1.add(Ldata,"East");
        p2.add(Tfip,"West");
        p2.add(Tfdata,"East");
        p.add(p1,"North");
        p.add(p2,"South");
        this.getContentPane().add(p,"South");  
      
        new Thread(new Runnable()
        {
         public void run()
         {
          byte[] buf=new byte[1024];
          DatagramPacket packet=new DatagramPacket(buf,1024);
          while(true)
          {
           try
           {  
        	   socket.receive(packet);
        	   dataList.append(new String(buf,0,packet.getLength())+"    FROM    "+packet.getAddress().getHostAddress()+":"+packet.getPort());
        	   dataList.append("\n");
           }
           catch(Exception e)
           {
            if(!socket.isClosed())
            {
            e.printStackTrace();
            }
           }
          }
         }
       
        }
        ).start();
      
        Tfdata.addActionListener(new ActionListener()
            {
             public void actionPerformed(ActionEvent e)
             {
              try
              { 
              byte[] buf=new byte[1024];
              buf=Tfdata.getText().getBytes();                    
              DatagramPacket packet=new DatagramPacket(buf,buf.length,
                                InetAddress.getByName(Tfip.getText()),5000);
              socket.send(packet);               
              dataList.append(new String(buf,0,packet.getLength())+"    TO    "+packet.getAddress().getHostAddress()+":"+packet.getPort());       
              dataList.append("\n");
              }
              catch(Exception x)
              {
               x.printStackTrace();
              }
              Tfdata.setText("");
             }        
         }
         );                
          MenuBar menuBar = new MenuBar();
          Menu menuFile = new Menu();
          MenuItem menuFileExit = new MenuItem();
        
          menuFile.setLabel("文件");
          menuFileExit.setLabel("退出");
        
          // Add action listener.for the menu button
          menuFileExit.addActionListener
          (
              new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      Chat.this.windowClosed();
                  }
              }
          ); 
          menuFile.add(menuFileExit);
          menuBar.add(menuFile);
        
          setTitle("我的聊天程序");
          setMenuBar(menuBar);
          setSize(new Dimension(310, 500));
          this.setResizable(false);
        
          // Add window listener.
          this.addWindowListener
          (
              new WindowAdapter() {
                  public void windowClosing(WindowEvent e) {
                      Chat.this.windowClosed();
                  }
              }
          );  
      }
    
    
      /**
       * 关闭,结束聊天
       */
      protected void windowClosed() {
     
       // TODO: Check if it is safe to close the application
     
          // Exit application.
          socket.close();
          System.exit(0);
      }

      /**
       * 构造函数,使聊天窗口可见
       */
    
      public Chat() {
          this.setVisible(true);
      }
      
}

⌨️ 快捷键说明

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