スレッドとアニメーション (3/9)
作成:2010-01-14 21:07
更新:2010-01-14 21:07
更新:2010-01-14 21:07
■Runnableインターフェイス
では、順にコードを見ていきましょう。まず、クラスの定義部分です。これは、以下のようになっていますね。
public class Test12 extends Frame implements ActionListener,Runnable
implementsでRunnableが組み込まれていることがわかります。インターフェイスは、このようにカンマで区切って記述することで複数のものを同時に利用することができます。
その後に、変数の宣言が並んでいます。その中に「Thread t1」というものがありますね。このThreadがスレッドのクラスですね。スレッドを使用する時は、このようにThreadクラスのインスタンスを作ります。
そして、実際にスレッドを作成しスタートしているのは、ボタンをクリックした時の処理を行なうactionPerformedメソッドです。ここでは変数にランダムな値をおさめた後、以下のような処理をしています。
if (t1 == null){
t1 = new Thread(this);
t1.start();
}
これがスレッド生成とスタートをしている部分です。Threadインスタンスは、他のクラスと同様にnewで作成します。このときパラメータに、そのスレッドで実行するインスタンスを設定します。これは、スレッドで実行可能な形で作られているもの、すなわちextends ThreadしているかimplementsThreadしたものでなければいけません。ここでは自身にimplements Runnableしていますからthisを指定します。
こうして作成されたインスタンスの「start」を呼び出せば、スレッドが開始されます。
public class Test12 extends Frame implements ActionListener,Runnable
implementsでRunnableが組み込まれていることがわかります。インターフェイスは、このようにカンマで区切って記述することで複数のものを同時に利用することができます。
その後に、変数の宣言が並んでいます。その中に「Thread t1」というものがありますね。このThreadがスレッドのクラスですね。スレッドを使用する時は、このようにThreadクラスのインスタンスを作ります。
そして、実際にスレッドを作成しスタートしているのは、ボタンをクリックした時の処理を行なうactionPerformedメソッドです。ここでは変数にランダムな値をおさめた後、以下のような処理をしています。
if (t1 == null){
t1 = new Thread(this);
t1.start();
}
これがスレッド生成とスタートをしている部分です。Threadインスタンスは、他のクラスと同様にnewで作成します。このときパラメータに、そのスレッドで実行するインスタンスを設定します。これは、スレッドで実行可能な形で作られているもの、すなわちextends ThreadしているかimplementsThreadしたものでなければいけません。ここでは自身にimplements Runnableしていますからthisを指定します。
こうして作成されたインスタンスの「start」を呼び出せば、スレッドが開始されます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ