private JLabel activityIdLabel,activityName,activityPlaceLabel,
activityTimeLabel,activityContactLabel,activityPersonNumLabel;
private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
activityTimeLabel,activityContactLabel,activityPersonNumLabel};所有JLabel都已实例化。如activityIdLabel = new JLabel("Id:");
这下面两个有什么区别?
Panel.add(activityLabelArray[0]);与Panel.add(activityIdLabel);activityLabelArray.length返回的是5 而 activityLabelArray[0]为什么返回的会是null?
Panel.add(activityIdLabel);可以正常运行,而Panel.add(activityLabelArray[0]);报错不知道原因,那位知道的帮忙解释一下,谢谢。

解决方案 »

  1.   


      private JLabel activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel;
    private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel};
    顺序是这样的吗?如果是,改成这样试试  private JLabel activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel;
      
      activityIdLabel = new JLabel("Id:");private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel};System.out.print(activityLabelArray[0]);
     
      

  2.   

    这下面两个有什么区别?
    Panel.add(activityLabelArray[0]);与Panel.add(activityIdLabel);
    没啥区别,都是添加JLabel对象,第一个是JLabel数组的第一个JLabel对象元素,第二个是JLabel对象activityLabelArray.length返回的是5 而 activityLabelArray[0]为什么返回的会是null?
    activityLabelArray是数组,数组.length是数组的长度,activityLabelArray[0]是JLabel对象,JLabel对象没有length方法吧,能调用成功?Panel.add(activityIdLabel);可以正常运行,而Panel.add(activityLabelArray[0]);报错
    报什么错?
      

  3.   

    private JLabel activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel;
    private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel};JLabel对象 activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel;
    都没有初始化,都是null
      

  4.   

    初始化都放在一个方法中了,是在一个方法中调用了activityLabelArray private JPanel activity_operate_panel(){
                    label_operatePanel = new JPanel(new FlowLayout());
    activityLabel = new JLabel("活动信息");
    activityLabel.setFont(font0);
    label_operatePanel.add(activityLabel);
    //操作面板:添加
    sub_operatePanel = new JPanel(new GridLayout(6,2));
    activityIdLabel = new JLabel("Id:");
    activityIdField = new JTextField(6);
    activityName = new JLabel("Name:");
    activityNameField = new JTextField(6);
    activityPlaceLabel = new JLabel("Place:");
    activityPlaceField = new JTextField(6);
    activityTimeLabel  = new JLabel("Time:");
    activityTimeField = new JTextField(6);
    activityContactLabel = new JLabel("Contact:");
    activityContactField = new JTextField(6);
    activityPersonNumLabel = new JLabel("PersonNum:");
    activityPersonNumField = new JTextField(6);
    for(int i =0;i<activityFieldArray.length;i=i+2){
    sub_operatePanel.add(activityLabelArray[i]);
    sub_operatePanel.add(activityFieldArray[i+1]);
    }

    button_operatePanel = new JPanel(new FlowLayout());
    addButton = new JButton("添加信息");
    delButton = new JButton("删除信息");
    updateButton = new JButton("更新信息");
    button_operatePanel.add(addButton);
    button_operatePanel.add(delButton);
    button_operatePanel.add(updateButton); //操作总面板
    operatePanel = new JPanel(new BorderLayout());
    operatePanel.add(label_operatePanel,BorderLayout.NORTH);
    operatePanel.add(sub_operatePanel,BorderLayout.CENTER);
    operatePanel.add(button_operatePanel,BorderLayout.SOUTH);

    return operatePanel;
    }
      

  5.   

    已经初始化了吧,"所有JLabel都已实例化。如activityIdLabel = new JLabel("Id:");"
    应该是顺序问题吧 也就是说实例化activityIdLabel这个对象之后才能定义数组 而不能在定义数组之后初始化对象
      

  6.   

    上面那个for循环报错, sub_operatePanel.add(activityLabelArray[i]);
    就因为activityLabelArray[i]是null。
      

  7.   

    private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel}的时候activityIdLabel,activityName,activityPlaceLabel,
    activityTimeLabel,activityContactLabel,activityPersonNumLabel都还为null