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]);报错不知道原因,那位知道的帮忙解释一下,谢谢。
解决方案 »
- 为什么在Linux环境下的eclipse中swing代码移到myeclipse中生成的页面就乱码
- 继承中的构造
- 高分求ibatis级联查询
- 怎么解决:浮动窗口,IE下正常,chorme下窗口固定死了,兼容问题?
- 使用抽象类写一个shape类出错了。错误信息:需要 ".class",不是语句,需要 ";"等
- java中关于自定义包的问题,恳请懂得人指导一下
- JAVA的文档打印问题
- 求:Java P2P 编程方面的书,在线等,立即给分!!
- 60 HotKeys!!! - how to handle it in Java
- 请问如何拆分多个html合成的文本并解析?
- 求学习类java网站源码+数据库等可以跑起来的东东学习
- ArrayList<Socket>
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