Passing array into constructor to use on JList

Posted by OVERTONE on Stack Overflow See other posts from Stack Overflow or by OVERTONE
Published on 2010-04-23T13:03:01Z Indexed on 2010/04/23 13:13 UTC
Read the original article Hit count: 281

Filed under:
|
|
|

I know the title sound confusing and thats because it is. its a bit long so try too stay with me.

this is the layout i have my code designed

variables constructor methods.

im trying too fill a Jlist full on names. i want too get those names using a method. so here goes.

in my variables i have my JList. its called contactNames; i also have an array which stores 5 strings which are the contacts names; heres the code for that anyway

String contact1;
String contact2;
String contact3;
String contact4;
String contact5;

String[] contactListNames;

JList contactList;

simple enough. then in my constructor i have the Jlist defined to fill itself with the contents of the array

    fillContactList();
    JList contactList = new JList(contactListNames);

that method fillContactList() is coming up shortly. notice i dont have the array defined in the constructor. so heres my first question. can i do that? define the array to contain something in te constructor rather than filling it fromt the array.

now heres where stuff gets balls up. ive created three different methods all of which havent worked. basically im trying to fill the array with all of them. this is the simplest one. it doesnt set the Jlist, it doesnt do anything compilicated. all it trys too do is fill the array one bit at a time

public void fillContactList()
       {
           for(int i = 0;i<3;i++)
           {
               try
               {
                   String contact;
                   System.out.println(" please fill the list at index "+ i);
                   Scanner in = new Scanner(System.in);
                   contact = in.next();
                   contactListNames[i] = contact;
                   in.nextLine();
               }
               catch(Exception e)
               {
                e.printStackTrace();   
               }
           }
       }

unfortunately this doesnt qwork. i get the print out to fill it at index 0; i input something and i get a nice big stack trace starting at

    contactListNames[i] = contact;

so my two questions in short are

how i define an array in a constructor.

and why cant i fill the array from that method.

************************888 **************************888

stack trace by request

 please fill the list at index 0
  overtone
java.lang.NullPointerException
 please fill the list at index 1
at project.AdminMessages.fillContactList(AdminMessages.java:408)
at project.AdminMessages.<init>(AdminMessages.java:88)
at project.AdminUser.createAdminMessages(AdminUser.java:32)
at project.AdminUser.<init>(AdminUser.java:18)
at project.AdminUser.main(AdminUser.java:47)

it was a null poiinter exception

© Stack Overflow or respective owner

Related posts about array

Related posts about constructor