views:

193

answers:

1

Hi, based on the contents of a vector(IDs), i'm trying to create the corresponding no. of buttons but I'm having problems doing that. I was wondering if anyone could help?

Below is the code that i'm using to try to get that done...

ButtonField[] btn = new ButtonField[list.IDs.size()];
  for(int i=0; i<list.IDs.size(); i++){
   btn[i].setLabel((String)list.IDs.elementAt(i));
   add(btn[i]);
  }

I'm currently getting an null pointer exception on the setLabel line.

+1  A: 

You are creating an array (btn) of ButtonFields but you aren't actually initializing the actual elements of the array.

When you create an array in Java, all of the elements of the array are initially NULL.

Try this:

ButtonField[] btn = new ButtonField[list.IDs.size()];
  for(int i=0; i<list.IDs.size(); i++){
   btn[i] = new ButtonField(...);
   btn[i].setLabel((String)list.IDs.elementAt(i));
   add(btn[i]);
  }

Notice the new line, which sets the array element to an actual object:

btn[i] = new ButtonField(...);

Of course, you will need to fill in whatever arguments are necessary for the constructor.

Adam Batkin
ah I see...thanks! I didn't realse that declaring the array wasn't initialising the buttons.
Ridz