用JBUILDER2005做个小的聊天软件,但是却总是出现java.lang.NullPointerException异常,网上有高手说debug以下,可小弟初学,不懂怎样debug,哪位高人能否帮忙DEBUG以下,找出错误,感激不尽!
package simpletalk;import java.awt.*;
import javax.swing.*;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import java.net.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame1
    extends JFrame {
  JPanel contentPane;
  XYLayout xYLayout1 = new XYLayout();
  JButton jButton1 = new JButton();
  JLabel jLabel1 = new JLabel();
  JLabel jLabel2 = new JLabel();
  JScrollPane jScrollPane1 = new JScrollPane();
  JTextArea jTextArea1 = new JTextArea();
  XYLayout xYLayout2 = new XYLayout();
  JScrollPane jScrollPane2 = new JScrollPane();
  JTextArea jTextArea2 = new JTextArea();
  DatagramPacket sendPacket,receivePacket;
  DatagramSocket sender,receiver;
  JTextField jTextField1 = new JTextField();
  public Frame1() {
    try {
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      jbInit();
      startChat();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }  /**
   * Component initialization.
   *
   * @throws java.lang.Exception
   */
  private void jbInit() throws Exception {
    contentPane = (JPanel) getContentPane();
    contentPane.setLayout(xYLayout2);
    setSize(new Dimension(400, 300));
    setTitle("Frame Title");
    jButton1.setText("发送");
    jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
    jLabel1.setText("好友");
    jLabel2.setText("消息");
    jTextField1.setText("jTextField1");
    jTextArea2.setText("按当地");
    jTextArea1.setText("达到");
    contentPane.add(jLabel2, new XYConstraints(24, 232, -1, -1));
    contentPane.add(jLabel1, new XYConstraints(83, 15, -1, -1));
    contentPane.add(jButton1, new XYConstraints(297, 231, -1, -1));
    jScrollPane2.getViewport().add(jTextArea2);    contentPane.add(jScrollPane1, new XYConstraints(108, 71, 176, 69));
    contentPane.add(jTextField1, new XYConstraints(4, 146, -1, -1));
    jScrollPane1.getViewport().add(jTextArea1);
    contentPane.add(jScrollPane2, new XYConstraints(69, 196, 179, 87));
  }
  public void startChat()
  {
    try{
      sender=new DatagramSocket();
      receiver=new DatagramSocket(6666);
      receiver1 r=new receiver1();
      Thread t=new Thread(r);
      t.start();    }catch(Exception e)
    {JOptionPane.showMessageDialog(this,"连接错误"+e.toString());}
  }  public void jButton1_actionPerformed(ActionEvent e) {
    try{String dest=jTextField1.getText();
    String message=jTextArea2.getText();
    if(!dest.equals(""))
                    {
                      jTextArea1.append("\n到"+receivePacket.getAddress()+":"+message);
                      byte data[]=message.getBytes();
                      sendPacket=new DatagramPacket(data,data.length,InetAddress
                          .getByName(dest),7777);                      sender.send(sendPacket);
                        }    }
    catch(Exception ue){}  }  class receiver1 implements Runnable
  {public void run()
  {
    while(true)
    {
      try
      {
        byte mess[]=new byte[200];
        receivePacket=new DatagramPacket(mess,mess.length);
        receiver.receive(receivePacket);
        jTextArea1.append("\n来自"+receivePacket.getAddress()+":");
        byte data[]=receivePacket.getData();
        String message=new String(data);
        jTextArea1.append(message);      }
      catch(Exception e){}
    }
  }
  }}class Frame1_jButton1_actionAdapter
    implements ActionListener {
  private Frame1 adaptee;
  Frame1_jButton1_actionAdapter(Frame1 adaptee) {
    this.adaptee = adaptee;
  }  public void actionPerformed(ActionEvent e) {
    adaptee.jButton1_actionPerformed(e);
  }
}