という名前の GUI クラスがNewFrame.java
あり、もう 1 つは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.
}
}
ここで 2 つの問題が発生しています。名前が付けられた NewFrame クラスにセッター メソッドがありsetTextboxValue
ますが、上記のようにこれを呼び出すと、「java.lang.NullPointerException」というエラーが発生します。
別の問題は次のとおりです。なぜx
そのスレッド内に変数を設定できないのか、このスレッド内に設定すると、変数x
の値が 10 である外部印刷はそこに印刷されず、代わりに印刷されます0