一个计算器程序(相当的不完善),
有问题,能编译,却不能解析,就是抛出异常,不知为什么,我是新手,请大家帮助
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
 
 
public class jisuanqi extends JFrame{
    
private int shuzi=0;
private double jisuan1=0;
private double jisuan2=0;
private double daan=0;
private JLabel theResultJLabel;
private JTextField theResultJTextField;

private JButton oneJButton;
private JButton twoJButton;
private JButton threeJButton;
private JButton fourJButton;
private JButton fiveJButton;
private JButton sixJButton;
private JButton sevenJButton;
private JButton eightJButton; 
private JButton nineJButton;
private JButton zeroJButton;
private JButton plusJButton;
private JButton minusJButton;
private JButton multiplyJButton;
private JButton removeJButton;
private JButton equalJButton;
private JButton pointJButton;

 
private JButton[] keyJButtons=new JButton[KeyEvent.KEY_LAST+1];
public jisuanqi()
{
jiSuan();
}
    private void jiSuan()
    {
    Container contentPane=getContentPane();
    contentPane.setLayout(null);
    
    oneJButton=new JButton();
    oneJButton.setBounds(300,100,100,100);
    oneJButton.setText("1");
    contentPane.add(oneJButton);
    keyJButtons[KeyEvent.VK_1]=oneJButton;
    
    
    
    twoJButton=new JButton();
    twoJButton.setBounds(400,100,100,100);
    twoJButton.setText("2");
    contentPane.add(twoJButton);
    keyJButtons[KeyEvent.VK_2]=twoJButton;
    
    threeJButton=new JButton();
    threeJButton.setBounds(500,100,100,100);
    threeJButton.setText("3");
    contentPane.add(threeJButton);
    keyJButtons[KeyEvent.VK_3]=threeJButton;
    
    fourJButton=new JButton();
    fourJButton.setBounds(300,200,100,100);
    fourJButton.setText("4");
    contentPane.add(fourJButton);
    keyJButtons[KeyEvent.VK_4]=fourJButton;
    
    fiveJButton=new JButton();
    fiveJButton.setBounds(400,200,100,100);
    fiveJButton.setText("5");
    contentPane.add(fiveJButton);
    keyJButtons[KeyEvent.VK_5]=fiveJButton;
    
    sixJButton=new JButton();
    sixJButton.setBounds(500,200,100,100);
    sixJButton.setText("6");
    contentPane.add(sixJButton);
    keyJButtons[KeyEvent.VK_6]=sixJButton;
    
    sevenJButton=new JButton();
    sevenJButton.setBounds(300,300,100,100);
    sevenJButton.setText("7");
    contentPane.add(sevenJButton);
    keyJButtons[KeyEvent.VK_7]=sevenJButton;
    
    eightJButton=new JButton();
    eightJButton.setBounds(400,300,100,100);
    eightJButton.setText("8");
    contentPane.add(eightJButton);
    keyJButtons[KeyEvent.VK_8]=eightJButton;
    
    nineJButton=new JButton();        
    nineJButton.setBounds(500,300,100,100);
    nineJButton.setText("9");
    contentPane.add(nineJButton);
    keyJButtons[KeyEvent.VK_9]=nineJButton;
    
    pointJButton=new JButton();
    pointJButton.setBounds(300,400,100,100);
    pointJButton.setText(".");
    contentPane.add(pointJButton);
    keyJButtons[KeyEvent.VK_PERIOD]=pointJButton;
    
    plusJButton=new JButton();
    plusJButton.setBounds(400,400,100,100);
    plusJButton.setText("+");
    contentPane.add(pointJButton);
    keyJButtons[KeyEvent.VK_EQUALS]=plusJButton;
    plusJButton.addActionListener(
      new ActionListener()
  {
      public void actionPerformed(ActionEvent event)
      {
         plusJButtonActionPerformed(event);
      }
  }
    );
    
    minusJButton=new JButton();
    minusJButton.setBounds(400,500,100,100);
    minusJButton.setText("-");
    contentPane.add(minusJButton);
    keyJButtons[KeyEvent.VK_MINUS]=minusJButton;
    minusJButton.addActionListener(
    new ActionListener()
{
     public void actionPerformed(ActionEvent event)
     {
     minusJButtonActionPerformed(event);
     }
}
    );
    
    removeJButton=new JButton();
    removeJButton.setBounds(500,500,100,100);
    removeJButton.setText("/");
    contentPane.add(removeJButton);
    keyJButtons[KeyEvent.VK_QUOTE]=removeJButton;
    removeJButton.addActionListener(
    new ActionListener()
{
    public void actionPerformed(ActionEvent event)
    {
    removeJButtonActionPerformed(event);
    }
}
    );
    multiplyJButton=new JButton();
    multiplyJButton.setBounds(500,400,100,100);
    multiplyJButton.setText("*");
    contentPane.add(multiplyJButton);
    keyJButtons[KeyEvent.VK_3]=multiplyJButton;
    multiplyJButton.addActionListener(
     new ActionListener()
{
    public void actionPerformed(ActionEvent event)
    {
    multiplyJButtonActionPerformed(event);
    }
}
    );
    
    equalJButton=new JButton();
    equalJButton.setBounds(500,500,100,100);
    equalJButton.setText("=");
    contentPane.add(equalJButton);
    keyJButtons[KeyEvent.VK_3]=equalJButton;
equalJButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
equalJButtonActionPerformed(event);
}
}
);
    
    
    theResultJTextField.setBounds(0,0,400,100);
    theResultJTextField.setText(String.valueOf(daan));
    theResultJTextField.setEditable(false);
    contentPane.add(theResultJTextField);
    }
    

private double equalJButtonActionPerformed(ActionEvent event)
{
switch(shuzi)
{
case 1:
daan=jisuan1*jisuan2;
break;
case 2:
daan=jisuan1-jisuan2;
break;
case 3:
daan=jisuan1*jisuan2;
break;
case 4:
daan=jisuan1/jisuan2;
break;
}
return daan;


}
    private void plusJButtonActionPerformed(ActionEvent event)
    {   
     shuzi=5;
     shuzi=shuzi%4;
    }
    private void minusJButtonActionPerformed(ActionEvent event)
    {
     shuzi=6;
     shuzi=shuzi%4;
    }
    private void multiplyJButtonActionPerformed(ActionEvent event)
    {
     shuzi=7;
     shuzi=shuzi%4;
    }
    private void removeJButtonActionPerformed(ActionEvent event)
    {
     shuzi=8;
     shuzi=shuzi%4;
    }
public static void main(String[] args)
{
 jisuanqi application=new jisuanqi();
 application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}}抛出的异常是这个:java.lang.NullPointerException
at jisuanqi.jiSuan(jisuanqi.java:194)
at jisuanqi.<init>(jisuanqi.java:50)
at jisuanqi.main(jisuanqi.java:249)
Exception in thread "main" 
请大虾们指导一下,,谢谢了!