libro
www.tuyano.com
初心者のためのJava SEプログラミング入門

スレッドとアニメーション (6/9)

作成:2010-01-14 21:12
更新:2010-01-14 21:12

■スレッドを抜ける

ここでは、どうやってスタートと停止を行なっているか見てみましょう。「GO」ボタンの処理を行なっているのはactionPerformedメソッドですね。ここでの処理は以下のようなものです。

    if (ev.getSource() == b1) {
        KissOfDeath = ! KissOfDeath;
        if (KissOfDeath){
            t1 = new Thread(this);
            t1.start();
        }
    }

 スレッドの開始/終了は、KissOfDeathという変数をチェックして行なうようにしています。まずこの値を真偽反対にして、trueに変わった時には、スレッドを作成してスタートしています。――そして、肝心のrunメソッドでの処理ですが、このように変わっています。

    public void run(){
        try {
            while(KissOfDeath){
                ……以下略……

見ると、while(KissOfDeath)という形でループを行なっていますね。ということは、このKissOfDeathがtrueの間は処理をくり返し続けますが、この値がfalseに変わると繰り返しを抜けてメソッドを終了してしまうのです。

スレッドの中止と再開は、このような形で「runメソッドを終了し、また新たにnew Threadする」という方法で行なうのが、今のところ一番確実のようです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのJava SEプログラミング入門」に戻る