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

📄 chatframe.java

📁 利用UDP实现网络聊天室
💻 JAVA
字号:
package chat;import java.net.*;import java.io.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import com.borland.jbcl.layout.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: </p> * @author unascribed * @version 1.0 */public class ChatFrame extends JFrame {  JPanel contentPane;  Label label1 = new Label();  Label label2 = new Label();  TextField textField1 = new TextField();  TextField textField2 = new TextField();  Button button1 = new Button();  TextArea textArea1 = new TextArea();  //Construct the frame  DatagramPacket sendpacket,receivepacket;//声明发送和接收数据包  DatagramSocket sendsocket,receivesocket;//声明发送和接收DatagramSocket  public ChatFrame() {    enableEvents(AWTEvent.WINDOW_EVENT_MASK);    try {      jbInit();    }    catch(Exception e) {      e.printStackTrace();    }  }  //Component initialization  private void jbInit() throws Exception  {    //setIconImage(Toolkit.getDefaultToolkit().createImage(ChatFrame.class.getResource("[Your Icon]")));    contentPane = (JPanel) this.getContentPane();    label1.setText("发送信息:");    label1.setBounds(new Rectangle(13, 59, 60, 21));    contentPane.setLayout(null);    this.setSize(new Dimension(363, 275));    this.setTitle("利用UDP实现聊天室");    label2.setText("请输入对方IP地址:");    label2.setBounds(new Rectangle(12, 19, 109, 23));    try {          sendsocket=new DatagramSocket();//初始化          receivesocket=new DatagramSocket(5001);    }    catch(SocketException se){        se.printStackTrace() ;        System.exit(0);    }    button1.setLabel("发送");    button1.setBounds(new Rectangle(280, 59, 59, 21));    button1.addActionListener(new java.awt.event.ActionListener() {      public void actionPerformed(ActionEvent e) {        button1_actionPerformed(e);      }    });    textField2.setBounds(new Rectangle(123, 20, 144, 19));    textArea1.setBounds(new Rectangle(11, 96, 333, 134));    textField1.setBounds(new Rectangle(76, 57, 191, 19));    contentPane.add(label2, null);    contentPane.add(label1, null);    contentPane.add(textField1, null);    contentPane.add(button1, null);    contentPane.add(textField2, null);    contentPane.add(textArea1, null);  }  //Overridden so we can exit when window is closed  protected void processWindowEvent(WindowEvent e) {    super.processWindowEvent(e);    if (e.getID() == WindowEvent.WINDOW_CLOSING) {      System.exit(0);    }  }  public void waitforpackets()  {    while(true){        try{             byte[]array=new byte[100];              receivepacket=new DatagramPacket(array,array.length );              receivesocket.receive(receivepacket);//接收              textArea1.append("\nfrom "+receivepacket.getAddress() +" : ");             byte data[]=receivepacket.getData() ;              String received=new String(data,0);              textArea1.append(received);        }        catch (IOException se){                textArea1.append(se.toString() +"\n");                se.printStackTrace() ;        }    }  }  void button1_actionPerformed(ActionEvent e) {        String str=textField2.getText();        if(str.compareTo("")!=0 ){            try {                 textArea1.append("\nto "+textField2.getText() +" : "+textField1.getText() );                 String s=textField1.getText() ;                 byte data[]=new byte[100];                 s.getBytes(0,s.length() ,data,0);                 sendpacket=new DatagramPacket(data,s.length() ,InetAddress.getByName(textField2.getText()),5000);                 sendsocket.send(sendpacket);            }            catch(IOException exc){               textArea1.append(exc.toString() +"\n");               exc.printStackTrace() ;            }        }        else            textArea1.setText("please input your friend's IP first!");  }}

⌨️ 快捷键说明

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