Java me 将布局添加到循环中的容器会引发NullpointerException

Java me 将布局添加到循环中的容器会引发NullpointerException,java-me,lwuit,Java Me,Lwuit,我正在Eclipse中使用j2me和LWUIT开发s60 我写此方法是为了绘制列表项,并尝试手动创建列表,而不是使用Lwuit列表。因为正如我在上一个问题中所说的,我不知道为什么,但这会降低性能 所以在下面的方法中,我尝试创建一个,在其中,我将向layoutX容器添加两个标签,并将Conatiner添加到layoutY容器,然后将layoutY添加到BaseContainer,这样输出就像列表一样 方法在这里 private void drawAgendasListItem(Vector vec

我正在Eclipse中使用j2meLWUIT开发s60

我写此方法是为了绘制列表项,并尝试手动创建列表,而不是使用Lwuit列表。因为正如我在上一个问题中所说的,我不知道为什么,但这会降低性能

所以在下面的方法中,我尝试创建一个,在其中,我将向layoutX容器添加两个标签,并将Conatiner添加到layoutY容器,然后将layoutY添加到BaseContainer,这样输出就像列表一样

方法在这里

private void drawAgendasListItem(Vector vector) {

        Container containerX[] = new Container[vector.size()];
        Container containerY[] = new Container[vector.size()];

        if (featuredeventsForm.contains(baseContainer)) {
            baseContainer.removeAll();
            featuredeventsForm.removeComponent(baseContainer);
            System.out.println("base Container is removed ");
        }

        BoxLayout layoutX = new BoxLayout(BoxLayout.X_AXIS);
            BoxLayout layoutY = new BoxLayout(BoxLayout.Y_AXIS);

        for (int i = 0; i < vector.size(); i++) {

        try {
                containerX[i].setLayout(layoutX);
                containerY[i].setLayout(layoutY);

                Label startTime = new Label();
                Label description = new Label();

                startTime.getStyle().setBgTransparency(0);
                startTime.setText("start 10:20 Am");
                startTime.getStyle().setMargin(0, 0, 0, 5);

                description.getStyle().setBgTransparency(0);
                description.setText("decriptionString");

                containerX[i].getStyle().setPadding(0, 0, 2, 2);
                containerX[i].addComponent(startTime);
                containerX[i].addComponent(description);

                containerY[i].addComponent(containerX[i]);
                baseContainer.addComponent(i, containerX[i]);

                System.out.println("Component added to base Container @ " + i);

            } catch (Exception e) {
                System.out.println("Exception in drawAgendaListItem " + e);
            }
        }
        featuredeventsForm.addComponent(baseContainer);
        featuredeventsForm.invalidate();
        featuredeventsForm.repaint();
        System.out.println("All elements added and form repainted");

    }
private void drawAgendasListItem(向量){
Container containerX[]=新容器[vector.size()];
容器容器[]=新容器[vector.size()];
if(featuredeventsForm.contains(baseContainer)){
baseContainer.removeAll();
featuredeventsForm.removeComponent(基本容器);
System.out.println(“基本容器被移除”);
}
BoxLayout layoutX=新的BoxLayout(BoxLayout.X_轴);
BoxLayout layoutY=新的BoxLayout(BoxLayout.Y_轴);
对于(int i=0;i
在上面的方法中,当我尝试将布局分配给容器时,它在第行激发一个NullPointerException
containerX[i].setLayout(layoutX)

我不明白为什么会发生这种情况,我还试图注释行,然后它在行
containerX[I].getStyle().setPadding(0,0,2,2)处触发NullPointerException


请帮助….

根据源代码,我猜您认为实例化数组也会填充它。Java中的情况并非如此

换句话说,如果您认为containerX看起来像:
[新容器,新容器,…,新容器]

在内存中,这是不正确的。它实际上看起来像:
[null,null,…,null]

我想你需要补充一下

containerX[i]=newcontainer()
containerY[i]=新容器()

在循环的开始


(也许您想将数组的内容实例化为容器的子类)

根据源代码,我猜您认为实例化数组也会填充它。Java中的情况并非如此

换句话说,如果您认为containerX看起来像:
[新容器,新容器,…,新容器]

在内存中,这是不正确的。它实际上看起来像:
[null,null,…,null]

我想你需要补充一下

containerX[i]=newcontainer()
containerY[i]=新容器()

在循环的开始


(可能您想将数组的内容实例化为容器的子类)

我添加了这些行,containerX[i]=newcontainer(layoutX);集装箱[i]=新集装箱(新的箱型布局(箱型布局Y_轴));但它仍然不起作用。firesi在我上一个问题列表呈现问题中发布了相同的错误,请帮助我..,我想以编程方式将待办事项添加到我的s60手机中我使用lwuit,我浏览了很多次,但没有一个结果有帮助..我添加了这些行,containerX[i]=new Container(layoutX);集装箱[i]=新集装箱(新的箱型布局(箱型布局Y_轴));但它仍然不起作用。firesi在我的上一个问题列表呈现问题中发布了相同的错误,请帮助我..,我想以编程方式将待办事项添加到我的s60手机中我使用Lwiit,我浏览了很多次,但没有一个结果有用。。