私は、Gui と呼ばれるクラスと Listener と呼ばれる 2 つのクラスを持っています。
リスナーのコードは次のとおりです。
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();
}
関連する Gui のコードは次のとおりです。
public void newMessage(String message){
System.out.println("in new message");
chatTextArea.append(" Someone Says: " + message + "\n" );
}
リスナーのコードが実行されると、次の行からヌル ポインターを取得します。
list.newMessage(message);
オブジェクトが作成されているため、理由はわかりません。まだ推測していない場合は、GUI クラスも作成されます。
何か案は?