import javax.swing.*;
import java.awt.*;
public class W extends JFrame
{
Icon items[];
JButton choice1[];JToolBar toolbar;
W()
{
super("dsaf");
toolbar=new JToolBar(JToolBar.HORIZONTAL);
for(int i=0;i<3;i++)
{
items[i]=new ImageIcon("a"+i+".gif");
choice1[i]=new JButton("",items[i]);
toolbar.add(choice1[i]);
Container con=getContentPane();
con.add(toolbar,BorderLayout.NORTH);
show();pack();
        }
}
public static void main(String args[])
{new W();}
}
有这样一个程序编译老出错,谁能帮我指点一下了(我是一个菜鸟)

解决方案 »

  1.   

    items[i]=new ImageIcon("a"+i+".gif");
      

  2.   

    和数组没有初始化没什么关系,因为在JAVA中定义数组时可以不指定其长度和可以不初始化,在编译时自动对其初始化一个null,在我的机器上编译是通过的,请楼主写出错误提示。
      

  3.   

    楼上的简直胡说八道,编译通过又怎么样,能运行了?
    数组不初始化能用的?按你的逻辑java是不需要存在运行时异常的的
    你运行一下再来说。
      

  4.   

    believefym(暮色,miss,迷失,miss说的对,数组要初始化,不然运行不了
    Icon items[]=new Icon[3];
    JButton choice1[]=new JButton[3];
      

  5.   

    编译一定能通过,因为数组作为类变时会默认初始化为null,这段代码运行时出错,因为items[]默认初始化为null后,items[i]=new ImageIcon("a"+i+".gif");调用时会出错,所以楼主说的不准确,编译通过,这属于运行时的空指针异常