求助,急...!
本人初學者,遇到一個問題,麻煩哪位朋友幫忙解決哈。。。。。萬分感謝!!!
問題: 編譯一個簡單的計算機圖形窗口,要求(在點擊相應數字時在文本域中顯示點擊數字)
可是編譯出.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)
------------------------------------------------------------------------------------------------
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.*;
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);
}
}
}
{
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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!