I have 2 classes one called Gui and one called Listener.
The code for Listener is :
package app.assignment.u0961036.core;
import net.jini.space.JavaSpace;
public class Listener extends Thread {
private JavaSpace space;
private Gui list;
public void run() {
space = SpaceUtils.getSpace("localhost");
System.out.println("In Listener");
int i = 0;
while(true){
i++;
try{
Message mTemplate = new Message();
System.out.println("Listner: template created");
Message nextMessage = (Message)space.take(mTemplate,null,Long.MAX_VALUE);
System.out.println("Listner: Message created");
String message = nextMessage.message;
System.out.println("Listner: message= "+message);
list.newMessage(message);
} catch ( Exception e) {
e.printStackTrace();
}
if(i % 10 == 0){
System.out.println("I = "+i);
}
}
}
public static void listen() {
(new Listener()).start();
}
The relevant code in Gui is:
public void newMessage(String message){
System.out.println("in new message");
chatTextArea.append(" Someone Says: " + message + "\n" );
}
When The code in Listener is run I get a null pointer from the following line:
list.newMessage(message);
I’m not sure why because the object is created.
The GUI is also created win the Gui class if you haven’t already guessed.
any Ideas?
The code above should fix your problem I think. In Java you create Objects by declaring and instantiating and initialising them. Read here for more information.