中国网管论坛's Archiver

华街少 发表于 2006-5-21 12:55

JAVA的问题 高手帮帮 告诉我这个错误怎么改

[SIZE="3"]Exception in thread "main" java.lang.NullPointerException
        at wg.<init>(wg.java:83)
        at wg.main(wg.java:388)[/SIZE]







代码如下:import java.awt.*;
import java.awt.Graphics;
import java.awt.event.*;
import java.applet.Applet;
import java.lang.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JFrame;
import java.text.DecimalFormat;

public class wg extends JFrame
    implements ActionListener
    {
   
       JMenuBar mainMenu;
       JLabel Space;
       JFrame frame;
       JTextField kuang,xiang;
       JPanel panel, panel1, panel2, panel3;
       JButton button[];
       JButton buttonjia,buttonjian,buttoncheng,buttonchu,buttondeng,buttondian;
       JButton buttontui,buttonclear;
       JMenu editMenu,aboutMenu;
       JMenuItem copyItem,pasteItem,aboutItem;
       DecimalFormat df;
       boolean clickable,isdian;
       double memoryd;
           int memoryi;
       double vard, answerd;
       short key = -1, prekey = -1;
       String copy;
        public wg()
            {
                clickable = true;
                answerd = 0;
                frame = new JFrame("05网管 计算器");
                df = new DecimalFormat("0.##############");
                kuang = new JTextField(20);
                kuang.setText("");
                kuang.setEditable(false);
                kuang.setBackground(new Color(255,255,255));
                panel = new JPanel();
                frame.getContentPane().add(panel);
                panel1 = new JPanel();
                panel2 = new JPanel();
                panel.setLayout(new BorderLayout());
                mainMenu = new JMenuBar();
                editMenu = new JMenu("编辑(E)");
                aboutMenu = new JMenu("关于(M)");
                copyItem = new JMenuItem("   复制(C) Ctrl+C");
                copyItem.addActionListener(this);
                pasteItem = new JMenuItem("   粘贴(V) Ctrl+V");
                pasteItem.addActionListener(this);
                editMenu.add(copyItem);
                editMenu.add(pasteItem);
                aboutItem = new JMenuItem("   关于计算器(A)");
                aboutItem.addActionListener(this);
                aboutMenu.add(aboutItem);
                mainMenu.add(editMenu);
                mainMenu.add(aboutMenu);
                panel.add(mainMenu, BorderLayout.NORTH);
                panel.add(kuang, BorderLayout.CENTER);
                panel.add(panel1, BorderLayout.SOUTH);
                panel1.setLayout(new BorderLayout());
                xiang = new JTextField(3);
                xiang.setEditable(false);
                xiang.setBackground(new Color(217, 217, 217));
                Space = new JLabel("                   ");
                buttontui = new JButton("退格");
                buttontui.setForeground(new Color(255, 0, 0));
                buttonclear = new JButton("清空");
                buttonclear.setForeground(new Color(255, 0, 0));
                buttontui.addActionListener(this);
                buttonclear.addActionListener(this);
                panel1.add(panel2, BorderLayout.NORTH);
                panel2.setLayout(new FlowLayout(FlowLayout.RIGHT));
                panel2.add(xiang);
                panel2.add(Space);
                panel2.add(buttontui);
                panel2.add(buttonclear);
                panel3 = new JPanel();
                panel1.add(panel3, BorderLayout.CENTER);
    panel3.add(button[0]);
    button[0].addActionListener(this);
        panel3.add(button[1]);
    button[1].addActionListener(this);
    panel3.add(button[2]);
    button[2].addActionListener(this);
    panel3.add(button[3]);
    button[3].addActionListener(this);  
        panel3.add(button[4]);
    button[4].addActionListener(this);
    panel3.add(button[5]);
    button[5].addActionListener(this);
    panel3.add(button[6]);
    button[6].addActionListener(this);
    panel3.add(button[7]);
    button[7].addActionListener(this);
    panel3.add(button[8]);
    button[8].addActionListener(this);
    panel3.add(button[9]);
    button[9].addActionListener(this);
panel3.add(buttonjia);
    buttonjia.addActionListener(this);
        panel3.add(buttonjian);
    buttonjian.addActionListener(this);
        panel3.add(buttoncheng);
    buttoncheng.addActionListener(this);
        panel3.add(buttonchu);
    buttonchu.addActionListener(this);
        panel3.add(buttondian);
    buttondian.addActionListener(this);
        panel3.add(buttondeng);
    buttondeng.addActionListener(this);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    frame.pack();
    frame.show();
     buttondian = new JButton(".");
    buttondian.setForeground(new Color(0, 0, 255));
    buttondeng = new JButton("=");
    buttondeng.setForeground(new Color(255, 0, 0));
    buttonjia = new JButton("+");
    buttonjia.setForeground(new Color(255, 0, 0));
    buttonjian = new JButton("-");
    buttonjian.setForeground(new Color(255, 0, 0));
    buttoncheng = new JButton("*");
    buttoncheng.setForeground(new Color(255, 0, 0));
    buttonchu = new JButton("/");
    buttonchu.setForeground(new Color(255, 0, 0));
        button = new JButton[10];
                        for (int i = 0; i < button.length; i++)
                        {
                                button[i] = new JButton(Integer.toString(i));
                                button[i].setForeground(new Color(0, 0, 255));
                        }
                        }
   
public void actionPerformed(ActionEvent event)
{
    boolean sign = false;
    Object temp = event.getSource();
        try
        {
        for (int i = 0; i <= 9; i++)
                if (temp == button[i] && clickable == true)
                kuang.setText(kuang.getText() + Integer.toString(i));
                 if (temp == buttondian && clickable == true)
                 {
                 boolean isdian = false;
                if (kuang.getText().length() == 0)
                 isdian = true;
                 for (int i = 0; i < kuang.getText().length(); i++)
                  if ('.' == kuang.getText().charAt(i))
                  {
                  isdian = true;
                  break;
                  }
                 if (isdian == false)
                kuang.setText(kuang.getText() + ".");
                 }
             if ( (temp == buttonjia || temp == buttonjian ||
           temp == buttoncheng ||temp == buttonchu) && clickable == true)
           {
           if (temp == buttonjia)
           {
           switch (prekey)
           {
                   case 0:
                 answerd += Double.parseDouble(kuang.getText());
                 break;
                 case 1:
                 answerd -= Double.parseDouble(kuang.getText());
                 break;
                 case 2:
                 answerd *= Double.parseDouble(kuang.getText());
                 break;
                 case 3:
                 if (Double.parseDouble(kuang.getText()) == 0)
                 {
                 clickable = false;
                 }
               else
                answerd /= Double.parseDouble(kuang.getText());
                break;
                default:
                answerd = Double.parseDouble(kuang.getText());
           }
                 kuang.setText("");
                prekey = key = 0;
           }
     if (temp == buttonjian)
       {
      switch (prekey)
      {
      case 0:
      answerd += Double.parseDouble(kuang.getText());
      break;
      case 1:
        answerd -= Double.parseDouble(kuang.getText());
         break;
        case 2:
          answerd *= Double.parseDouble(kuang.getText());
          break;
         case 3:
          if (Double.parseDouble(kuang.getText()) == 0)
              {
                clickable = false;
              }
                  else
                answerd /= Double.parseDouble(kuang.getText());
                break;
                default:
               answerd = Double.parseDouble(kuang.getText());
      }
      kuang.setText("");
      prekey = key = 1;
      }
   if (temp == buttoncheng)
   {
   switch (prekey)
   {
        case 0:
        answerd += Double.parseDouble(kuang.getText());
        break;
        case 1:
        answerd -= Double.parseDouble(kuang.getText());
        break;
        case 2:
        answerd *= Double.parseDouble(kuang.getText());
        break;
        case 3:
        if (Double.parseDouble(kuang.getText()) == 0)
        {
        clickable = false;
        }
        else
        answerd /= Double.parseDouble(kuang.getText());
        break;
        default:
        answerd = Double.parseDouble(kuang.getText());
   }
        kuang.setText("");
        prekey = key = 2;
   }
if (temp == buttonchu)
{
switch (prekey)
{
        case 0:
        answerd += Double.parseDouble(kuang.getText());
        break;
        case 1:
        answerd -= Double.parseDouble(kuang.getText());
        break;
        case 2:
        answerd *= Double.parseDouble(kuang.getText());
        break;
        case 3:
        if (Double.parseDouble(kuang.getText()) == 0)
        {
        clickable = false;
        }
        else
        answerd /= Double.parseDouble(kuang.getText());
        break;
        default:
        answerd = Double.parseDouble(kuang.getText());
}
        kuang.setText("");
        prekey = key = 3;
}
if (temp == buttondeng && clickable == true)
{
if (prekey == 5)
{
  if (key == 0)
        {
        answerd += vard;
        kuang.setText(df.format(answerd));
        }
        if (key == 1)
        {
        answerd -= vard;
        kuang.setText(df.format(answerd));
        }
        if (key == 2)
        {
        answerd *= vard;
        kuang.setText(df.format(answerd));
        }
        if (key == 3)
        {
        if (Double.parseDouble(kuang.getText()) == 0)
        {
        clickable = false;
        }
        else
        {
        answerd /= vard;
        kuang.setText(df.format(answerd));
        }
        }
}
else
{
        vard = Double.parseDouble(kuang.getText());
        if (key == 0)
        {
        prekey = -1;
        answerd += Double.parseDouble(kuang.getText());
        kuang.setText(df.format(answerd));
        }
        if (key == 1)
        {
        prekey = -1;
        answerd -= Double.parseDouble(kuang.getText());
        kuang.setText(df.format(answerd));
        }
        if (key == 2)
        {
        prekey = -1;
        answerd *= Double.parseDouble(kuang.getText());
        kuang.setText(df.format(answerd));
        }
        if (key == 3)
        {
        prekey = -1;
        if (Double.parseDouble(kuang.getText()) == 0)
        {
        clickable = false;
        }
        else
        {
        answerd /= Double.parseDouble(kuang.getText());
        kuang.setText(df.format(answerd));
        }
        }
}
prekey = 5;
}
        if (isdian == true)
        {
        memoryd = Double.parseDouble(kuang.getText());
        memoryi = 0;
        }
        else
        {
        memoryi = Integer.parseInt(kuang.getText());
        memoryd = 0;
        }
        if (temp == buttontui && clickable == true)
        {
        String s = kuang.getText();
        kuang.setText("");
        for (int i = 0; i < s.length() - 1; i++)
        {
        char a = s.charAt(i);
        kuang.setText(kuang.getText() + a);
        }
        }
        if (temp == buttonclear)
        {
        vard = answerd = 0;
        kuang.setText("");
        clickable = true;
        }
        if (temp == copyItem)
        {
        copy = kuang.getText();
        }
        if (temp == pasteItem)
        {
        kuang.setText(copy);
        }
        if (temp == aboutItem)
        {
        JOptionPane.showMessageDialog(panel, "网管 计算器\n作者:华");
        }}
        }catch (Exception e)
        {
        kuang.setText("操作非法");
        clickable = false;
        }
}  

public static void main(String[] arguments)
          {
                         new wg();
      }
}

华街少 发表于 2006-5-21 12:56

回复: JAVA的问题 高手帮帮 告诉我这个错误怎么改

都来帮帮我哦

页: [1]

Powered by Discuz! Archiver 6.1.0  © 1999-2008 bbs.bitsCN.com