From: BlackJackal on
I am working on a homework problem and I have run into a brick wall.
I am receving a

java.lang.NullPointerException
at InputGrades.main(InputGrades.java:15)

Error message when trying to run the program, it compiles just fine.
As far as I can tell everything looks fine. The problem calls for me
to create three classes with the first two being the base and the
third being where all the action takes place. Please take a look and
point out my stupidity.

public class CollegeCourse
{
private String ID;
private int CH;
private char LG;
public static void main(String[] args)
{

}
public String getID()
{
return ID;
}
public int getCH()
{
return CH;
}
public char getLG()
{
return LG;
}
public void setID(String a)
{
ID = a;
}
public void setCH(int a)
{
CH = a;
}
public void setLG(char a)
{
LG = a;
}

}






public class Student
{
private int stuid;
private CollegeCourse courses[] = new CollegeCourse[5];
public static void main(String[] args)
{



}
public int getstuid()
{
return stuid;
}
public void setstuid(int a)
{
stuid = a;
}
public CollegeCourse getcourses(int a)
{
return courses[a];
}
public void setcourses(int a, CollegeCourse c)
{
courses[a] = c;
}
}








import javax.swing.*;
public class InputGrades
{
public static void main(String[] args)
{
Student students[] = new Student[10];
String temp;
int sel;
char grade;
CollegeCourse place = new CollegeCourse();
String grades = "aAbBcCdDfF";
for(int i = 0; i < 10; ++i) {
temp = JOptionPane.showInputDialog(null,"Enter ID for
Student #" + (i+1));
sel = Integer.parseInt(temp);
students[i].setstuid(sel);
for(int b = 0; b < 5; ++b) {
temp = JOptionPane.showInputDialog(null,"Enter in
Course ID for Course #" + (b+1));
place.setID(temp);
temp = JOptionPane.showInputDialog(null,"Enter in
Credit Hours for Course #" + (b+1));
sel = Integer.parseInt(temp);
place.setCH(sel);
do {
temp = JOptionPane.showInputDialog(null,"Enter in
Letter Grade for Course #" + (b+1));
grade = temp.charAt(0);
if(grades.indexOf(grade) == -1) {
JOptionPane.showMessageDialog(null,"You entered
an Incorrect Grade Try again");
}
} while (grades.indexOf(grade) == -1);
place.setLG(grade);
students[b].setcourses(b, place);
}
}
}
}

From: Gordon Beaton on
On 7 Feb 2007 06:29:22 -0800, BlackJackal wrote:
> I am working on a homework problem and I have run into a brick wall.
> I am receving a
>
> java.lang.NullPointerException
> at InputGrades.main(InputGrades.java:15)

The following line creates an array of 10 Student references, however
it doesn't create the actual Student objects, so each array element is
initially null:

> Student students[] = new Student[10];

[...]

A few lines further down, this is where your exception occurs:

> students[i].setstuid(sel);

You need to create the Student objects before you can use them.

/gordon

--
[ don't email me support questions or followups ]
g o r d o n + n e w s @ b a l d e r 1 3 . s e
From: BlackJackal on
> The following line creates an array of 10 Student references, however
> it doesn't create the actual Student objects, so each array element is
> initially null:
>
> > Student students[] = new Student[10];
>
> [...]
>
> A few lines further down, this is where your exception occurs:
>
> > students[i].setstuid(sel);
>
> You need to create the Student objects before you can use them.
>
> /gordon
>
> --
> [ don't email me support questions or followups ]
> g o r d o n + n e w s @ b a l d e r 1 3 . s e

So do I have to put information into the Student objects first? If so
what is the most effiecient way to accomplish this task. Thanks in
advance


From: Gordon Beaton on
On 7 Feb 2007 06:59:08 -0800, BlackJackal wrote:
> So do I have to put information into the Student objects first?

You have to *create* the Student objects first. Something like this:

for (int i=0; i<10; i++) {
students[i] = new Student();
}

You probably don't need a loop just for this, you could also create
each element at the start of the existing loop.

/gordon

--
[ don't email me support questions or followups ]
g o r d o n + n e w s @ b a l d e r 1 3 . s e
From: BlackJackal on
Thanks for the Help!!!!!