java问题,求高手解决
[code=Java][/code]
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Calculator implements ActionListener{
JTextField jtf;
JButton[] jbt;//jbt2,jbt3,jbt4,jbt5,jbt6,jbt7,jbt8,jbt9,jbt0;
Calculator(){
JFrame jfrm = new JFrame("计算器");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(240,120);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jtf = new JTextField(10);
for(int i=0;i<10;i++){
jbt[i] = new JButton(String.valueOf(i));
jbt[i].addActionListener(this);}
jtf.addActionListener(this);
jfrm.add(jtf);
for(int j=0;j<10;j++)
jfrm.add(jbt[j]);
jfrm.setVisible(true);
}
public void actionPerformed(ActionEvent ae){
for(int i=0;i<10;i++)
if(ae.getActionCommand().equals(String.valueOf(i)))
jtf.setText(String.valueOf(i));
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new Calculator();}
});
}
}
解释一下上面的程序,
十个按钮,上面分别是0到9,每次按下一个按钮,该按钮上面的数字就会在文本域里面显示。
上面的程序出现了异常,程序异常终止,求高手指出,哪个地方出现异常了。
------解决方案--------------------
我运行了一下你的程序,首先很明显是
空指针错误,然后错误定位到JButton[] jbt;你看看这个数组都没有初始化,怎么可能不错呢,所以你把它改成JButton[] jbt = new JButton[10];一切ok