User interface 来自另一个类的java空指针
我有两个类,一个叫做Gui,另一个叫做Listener 侦听器的代码是:User interface 来自另一个类的java空指针,user-interface,null,nullpointerexception,User Interface,Null,Nullpointerexception,我有两个类,一个叫做Gui,另一个叫做Listener 侦听器的代码是: 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.get
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" );
}
当Listener中的代码运行时,我从以下行获得一个空指针:
list.newMessage(message);
我不知道为什么,因为对象是创建的。
如果您还没有猜到,GUI也会被创建为赢得GUI类
有什么想法吗
package app.assignment.u0961036.core;
import net.jini.space.JavaSpace;
public class Listener extends Thread {
private JavaSpace space;
space = new JavaSpace();
private Gui list;
list = new Gui();
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();
}
我认为上面的代码应该可以解决您的问题。在Java中,通过声明、实例化和初始化对象来创建对象。阅读了解更多信息。System.out.println(“Listner:message=“+message”)的作用是什么;给你?哦,等等。您尚未实例化列表。添加列表=新GUI();某处。如果在GUI类中传递了参数,则需要在声明中包含这些参数。我收到了更多错误。我想这是因为Gui类中有我的主要方法???