我有一个名为 as 的 GUI 类NewFrame.java
,另一个是Client.java
. 在 Client.java 中,NewFrame 的对象是在一个线程中创建的。前任,
public class ClientA {
NewJFrame gui;
int x ;
public void go() {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
gui = new NewJFrame();
gui.setVisible(true);
x = 10;
}
});
System.out.println(x); // does not print 10 but it prints 0
gui.setTextboxvalue("value changed !!!");
// can'se pass value to the function, with this error occurs as,
// "java.lang.NullPointerException" at here.
}
}
这里出现了两个问题,在 NewFrame 类中有一个 setter 方法,setTextboxValue
但如上所示调用它会发生错误“java.lang.NullPointerException”。
另一个问题是:为什么我不能x
在该线程内设置变量,在线程内设置此变量,外部打印变量x
的值 10 不是在那里打印而是打印0