コンストラクターの初期化時に変数を設定する実行可能な gui スイング クラスがあります。GUI が実行されると、独自の別のスレッドとして実行されます。ただし、問題は、GUI でアクションイベントがトリガーされたときです。初期化された変数にアクセスしようとすると、デフォルトにリセットされます。いくつかのデバッグの後、トリガーされたアクションイベントは独自のスレッドとして開始されるようです。アクション イベントを処理するときに、正しいスレッドで正しい変数にアクセスするにはどうすればよいですか?
コード例:
public class myGui implements Runnable{
private flag = false;
public myGui(){
flag = true;
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("The value of flag is: " + flag); // prints flag is false
}
public void run(){
// Do stuff
}
// More code ...
}
私の例では、スレッドでコンストラクターを初期化するときに、フラグが true に設定されます。ただし、アクションイベントがトリガーされると、スレッド変数を無視してフラグが false に設定されていることがわかります。これを修正するにはどうすればよいですか?
ありがとう