java 为什么能编译不能运行 细讲怎样修改

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:36:22
import java.awt.*;
import java.awt.event.*;
public class D extends Frame implements ItemListener
{
List ls;
Label lb;
TextArea ta;
D()
{
super("人物信息");
setBounds(0,0,250,250);
setLayout(new FlowLayout());
setBackground(new Color(10,10,10));
lb=new Label("请选择:");
ls.add("马显君");
ls.add("陈生金");
ls.add("李苏毅");
ls.add("郝建才");
add(lb);
add(ls);
ls.addItemListener(this);
setVisible(true);
}
public void itemStateChanged(ItemEvent e)
{
int select=ls.getSelectedIndex();
switch(select)
{
case 0:ta.setText("");break;
case 1:ta.setText("");break;
case 2:ta.setText("");break;
case 3:ta.setText("");break;
default:ta.setText("");break;
}
}
public static void main(String as[])
{
new D();
}

你的代码里还有其它的问题,没有处理好.
但是如果你只是想要运行,那好处理:
在你的lb=new Label("请选择:");
代码后加一句ls=new List();就OK了.

至于为什么会这样?呵要明白,这里的成员变量ls你没有初始化,所以时肯定会出现异常如:空指针异常(NullPointException).
TextArea ta; 这个成员变量你也要看下,也许也存在问题.成员变量,特别是对象类型的引用,在使用它之前,一定要记得初始化,否则都会出现这样的异常的!