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

📄 qq.java

📁 模拟QQ程序的源代码
💻 JAVA
字号:
public aqq() { 
    fqq frame = new fqq(); 
    //Validate frames that have preset sizes 
    //Pack frames that have useful preferred size info, e.g. from their layout 
    if (packFrame) { 
      frame.pack(); 
    } 
    else { 
      frame.validate(); 
    } 
    //Center the window 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    Dimension frameSize = frame.getSize(); 
    if (frameSize.height > screenSize.height) { 
      frameSize.height = screenSize.height; 
    } 
    if (frameSize.width > screenSize.width) { 
      frameSize.width = screenSize.width; 
    } 
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); 
    frame.setVisible(true); 
  } 

  //Main method 
  public static void main(String[] args) { 
    try { 
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
    } 
    catch(Exception e) { 
      e.printStackTrace(); 
    } 
    new aqq(); 
  } 
} 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~函数~基本原理~↓ 
package qq; 

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

/** 
 * <p>Title: </p> 
 * <p>Description: </p> 
 * <p>Copyright: Copyright ? 2006</p> 
 * <p>Company: </p> 
 * @author not attributable 
 * @version 1.0 
 */ 

public class fqq extends JFrame implements Runnable{ 
  JPanel contentPane; 
  JScrollPane jScrollPane1 = new JScrollPane(); 
  JTextArea jTextArea1 = new JTextArea(); 
  JButton jButton1 = new JButton(); 
  JTextField jTextField1 = new JTextField(); 
  JTextField jTextField2 = new JTextField();  
  JLabel jLabel1 = new JLabel(); 
  JButton jButton2 = new JButton(); 
  //---------------------------------------- 
  DatagramSocket ds=null; 
  Thread t; 
 //----------------------------------- 
  //Construct the frame 
  public fqq() { 
    //----------------------------------------- 
    try { 
      ds = new DatagramSocket(2006); 
      new Thread(this, "1").start(); 
    } 
    catch (SocketException ex) { 
    } 
    //--------------------------------------------- 
    enableEvents(AWTEvent.WINDOW_EVENT_MASK); 
    try { 
      jbInit(); 
    } 
    catch(Exception e) { 
      e.printStackTrace(); 
    } 
  } 
  //--------------------------------------------------- 
public void run() 
{ 
  byte[] buf=new byte[1024]; 
  DatagramPacket dp=new DatagramPacket(buf,1024); 
  while(true) 
  { 
    try { 
      ds.receive(dp); 
      String str=new String(buf,0,dp.getLength()) +" IP :"+ dp.getAddress().getHostAddress()+":"+dp.getPort(); 
        jTextArea1.setText(str); 
     
    }catch (IOException ex) { 
      if(!ds.isClosed()) 
        ex.printStackTrace(); 
    } 
  } 
} 
//-------------------------------------------------------------------- 
  //Component initialization 
  private void jbInit() throws Exception  { 
    contentPane = (JPanel) this.getContentPane(); 
    contentPane.setLayout(null); 
    this.setSize(new Dimension(400, 300)); 
    this.setTitle("Frame Title");
jScrollPane1.setBounds(new Rectangle(12, 12, 363, 152)); 
    jTextArea1.setFont(new java.awt.Font("Dialog", 0, 14)); 
    jTextArea1.setText("jTextArea1"); 
    jButton1.setBounds(new Rectangle(194, 232, 105, 34)); 
    jButton1.setFont(new java.awt.Font("Dialog", 0, 18)); 
    jButton1.setText("发送"); 
    jButton1.addActionListener(new fqq_jButton1_actionAdapter(this)); 
    jTextField1.setFont(new java.awt.Font("Dialog", 0, 18)); 
    jTextField1.setText(""); 
    jTextField1.setBounds(new Rectangle(33, 185, 114, 35)); 
    jTextField2.setFont(new java.awt.Font("Dialog", 0, 15)); 
    jTextField2.setText(""); 
    jTextField2.setBounds(new Rectangle(186, 185, 169, 37)); 
    jLabel1.setFont(new java.awt.Font("Dialog", 0, 18)); 
    jLabel1.setText("IP:"); 
    jLabel1.setBounds(new Rectangle(9, 184, 36, 31)); 
    jButton2.setBounds(new Rectangle(34, 237, 99, 29)); 
    jButton2.setFont(new java.awt.Font("Dialog", 0, 18)); 
    jButton2.setText("退出"); 
    jButton2.addActionListener(new fqq_jButton2_actionAdapter(this)); 
    contentPane.add(jScrollPane1, null); 
    contentPane.add(jTextField2, null); 
    contentPane.add(jButton1, null); 
    contentPane.add(jLabel1, null); 
    contentPane.add(jTextField1, null); 
    contentPane.add(jButton2, null); 
    jScrollPane1.getViewport().add(jTextArea1, null); 
  } 

  //Overridden so we can exit when window is closed 
  protected void processWindowEvent(WindowEvent e) { 
    super.processWindowEvent(e); 
    if (e.getID() == WindowEvent.WINDOW_CLOSING) { 
  //---- 
      ds.close(); 
  //---- 
      System.exit(0); 
    } 
  } 
//----------------------------------------------------- 
  void jButton1_actionPerformed(ActionEvent e) { 
    byte [] buf; 
    buf=jTextField2.getText().getBytes(); 
    try { 
    DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(jTextField1.getText()),2006); 

    ds.send(dp); 
    } 
    catch (IOException ex) { 

    } 
    jTextField2.setText(" "); 
  } 

  void jButton2_actionPerformed(ActionEvent e) { 
    ds.close(); 
    System.exit(0); 
  } 
} 
//---------------------------------------------------------------- 
class fqq_jButton1_actionAdapter implements java.awt.event.ActionListener { 
  fqq adaptee; 

  fqq_jButton1_actionAdapter(fqq adaptee) { 
    this.adaptee = adaptee; 
  } 
  public void actionPerformed(ActionEvent e) { 
    adaptee.jButton1_actionPerformed(e); 
  } 
} 

class fqq_jButton2_actionAdapter implements java.awt.event.ActionListener { 
  fqq adaptee; 

  fqq_jButton2_actionAdapter(fqq adaptee) { 
    this.adaptee = adaptee; 
  } 
  public void actionPerformed(ActionEvent e) { 
    adaptee.jButton2_actionPerformed(e); 
  } 
}

⌨️ 快捷键说明

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