import java.io.*;
import java.net.Socket;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;

public class Join extends JDialog implements ActionListener
{
 private clientinfomation i;
 private BufferedWriter bw = null;
 private Socket s;
 private JTextField jid;
 private JTextField jpass;
 private JTextField jname;
 private JTextField jnum;
 private JButton jok;
 private JButton jcan;
 private JPanel jp;
 private JLabel lid;   //아이디
 private JLabel lpass;  //비번
 private JLabel lname;  //이름
 private JLabel lnum;  //게좌번호
 
 public Join(Socket s)
 {
  this.s = s;
  setTitle("회원가입");
     setBounds(200,200,270,400);
    
     lid = new JLabel("아이디 ");
     lpass = new JLabel("비밀번호 ");
     lname = new JLabel("이름 ");
     lnum = new JLabel("계좌번호 ");
     jok = new JButton("화긴");
     jcan = new JButton("치소");
     jid = new JTextField(15);
     jpass = new JTextField(15);
     jname = new JTextField(15);
     jnum = new JTextField(15);
     jok.addActionListener(this);
     jcan.addActionListener(this);
     jp = new JPanel();
    
     jp.add(lid);
     jp.add(jid);
     jp.add(lpass);
     jp.add(jpass);
     jp.add(lname);
     jp.add(jname);
     jp.add(lnum);
     jp.add(jnum);
     jp.add(jok);
     jp.add(jcan);
    
     getContentPane().add(jp);
     try
     {
      bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
     }
     catch(Exception e)
     {
      
     }
 }
 
 public void actionPerformed(ActionEvent ae)
 {
  String num = ae.getActionCommand();
  if(num.equals(jok.getText()))
  {
   try
   {
    if(!(jid.getText().equals(null)||jpass.getText().equals(null)||jname.getText().equals(null)||jnum.getText().equals(null)))
    {
     bw.write(jid.getText()+"."+jpass.getText()+"."+jname.getText()+"."+jnum.getText()+"\n");
     bw.flush();
     setVisible(false);
    }
    
   }
   catch(Exception e)
   {
    e.printStackTrace();
    /*try
    {
           bw.close();
           s.close();
       }
    catch(Exception e2)
    {}
         System.exit(0);*/
   }
  }
  else if(num.equals(jcan.getText()))
  {
   dispose();
  }
 }
}

건방지게 뉴비가 질문해서 미안해
형들 정말 도움이 필요해서 그런데..
여기서 bw.write하고 bw.flush에서 널포인트인셉션이 일어나는데 왜 일어나는지 설명좀 해줄사람 있어?ㅠㅠ
부탁할게 ㅠㅠ