求助,急...!

su14665069 14年前發布 | 2K 次閱讀 QT
本人初學者,遇到一個問題,麻煩哪位朋友幫忙解決哈。。。。。萬分感謝!!!
 
問題:  編譯一個簡單的計算機圖形窗口,要求(在點擊相應數字時在文本域中顯示點擊數字)
             可是編譯出.class文件,并也顯示出圖形窗口,但點擊上面的數字時,編譯器報錯。
           求解決方法.  謝謝.........(代碼是自己編寫,如有不規范的地方請多多見諒)
錯誤提示如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 at awt.layout.Calculator$TestListener.actionPerformed(Calculator.java:53)
 at java.awt.Button.processActionEvent(Button.java:392)
 at java.awt.Button.processEvent(Button.java:360)
 at java.awt.Component.dispatchEventImpl(Component.java:4501)
 at java.awt.Component.dispatchEvent(Component.java:4331)
 at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
 at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
 at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
 at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
------------------------------------------------------------------------------------------------
原代碼如下:
import java.awt.*;
import java.awt.event.*;
public class Calculator
{
 Frame f;
 Button b;
 TextField t;
 Panel p;
 
 public static void main(String[] args)
 {
  Calculator c = new Calculator();
  c.init();
  
 }
 
 public void init()
 {   
  Frame f = new Frame("計算器");
  TextField t = new TextField(50);
  Panel p = new Panel();
  TestListener ts = new TestListener();
  p.setLayout(new GridLayout(6,5));
  Button [] bt =new Button[30];
  String [] buttonname ={"MC","MR","MS","M+","M-","←","CE","C","±","√","7","8","9","/","%","4","5","6","*","1/x","1","2","3","-","=","0",".","+","a","b","c","d"};
  for(int i=0;i<=29;i++)
  {
   p.add(bt[i] = new Button(buttonname[i]));
   bt[i].addActionListener(ts);
  }
  
  
  f.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e)
   {
    System.exit(1);
   }
  });
  f.add(t,BorderLayout.NORTH);
  f.add(p,BorderLayout.CENTER);
  f.pack();
  f.setVisible(true);
 }
 
 public class TestListener implements ActionListener
 {
  public void actionPerformed(ActionEvent e)
  {
   String s = e.getActionCommand();
   t.setText(s);
  }
 }
 
}
 本文由用戶 su14665069 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!