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]);报错不知道原因,那位知道的帮忙解释一下,谢谢。
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]);
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]);报错
报什么错?
activityTimeLabel,activityContactLabel,activityPersonNumLabel;
private JLabel[] activityLabelArray = {activityIdLabel,activityName,activityPlaceLabel,
activityTimeLabel,activityContactLabel,activityPersonNumLabel};JLabel对象 activityIdLabel,activityName,activityPlaceLabel,
activityTimeLabel,activityContactLabel,activityPersonNumLabel;
都没有初始化,都是null
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;
}
应该是顺序问题吧 也就是说实例化activityIdLabel这个对象之后才能定义数组 而不能在定义数组之后初始化对象
就因为activityLabelArray[i]是null。
activityTimeLabel,activityContactLabel,activityPersonNumLabel}的时候activityIdLabel,activityName,activityPlaceLabel,
activityTimeLabel,activityContactLabel,activityPersonNumLabel都还为null