| MEMO |
< 目 次 >
☆参考書籍他 ==> 「おすすめコーナー」として独立しました。
| 1.Javaを入れる準備 |
| 必要な道具類(今のところWindows95または98の上で入れることを前提とします) (1)Javaアプリケーションの開発キット(JDK) これには色々なヴァージョンがありますが、GUI部品Swingの利用を考えてJDK1.2(別 名 Java 2)にします。(アプレットの動作については、対応しているブラウザーが少ないので すがそれはそれで、別に考えましょう。とにかく、最初は慣れることが大切ですからね。) で、JDK1.2はここからダウンロード出来ます。 http://java.sun.com/products/jdk/1.2/ja/ また、書籍や雑誌で、CD−ROMに入っているものもあります。 たとえば、「速習Java Swingプログラミング」(SOFT BANK Publishing) (2)エディタ(プログラムを入力するために必要です) ○「メモ帳」: 一番手軽。Windowsに附属しているのですぐに使えます。 ○「ミュール(mule)」:わたしは主にこれを使っています。( “{” と “}” の対応状況などを 教えてくれたり、プログラムの入力に便利な機能がいろいろあります。) どうしても必要な道具は以上の2つだけ。もちろんキーボードはあるのが前提です。マウスだけで文字入力というのは、ちょっとね... |
| −−−−−−− 「目 次」にもどるよ |
| 2.JDK1.2のダウンロード |
| (1)上のサイトにつないで、 「製品リリース」の「Java 2 SDK v.1.2.2 製品リリース Windows9598/NT版をクリック (2)Java SDK, Standard Edition 1.2.2 のダウンロードのところで、一括ダウンロードか分割ダウン ロードを選んで、continueボタンをクリック 同じ所にある「インストールの手順」をクリックすると手順説明のページが表示されます。ダウン ロードには結構時間がかかりますから、その間に眼をとおしておくとよいですね。(また、わたし は記憶力に自信がないので、念のためディスクに保存しておいた。) |
| −−−−−−− 「目 次」にもどるよ |
| 3.インストール |
| (1)ダウンロードした場合でもCD-ROMからコピーした場合でも、まず、実行可能形式のファイル 「jdk1_2_2-win.exe」を起動します(クリックするだけ)。 途中いくつか確認事項がありますが、特に重要なのは「インストール先のディレクトリ」だけ。 (ま、これも、特に事情がなければ、デフォルトのままでかまわないけど) (2)パスの設定 Windowsでは、通常ドライヴCのルートディレクトリに「Autoexec.bat」というファイルがありま す。これをエディタで開いて、たとえば赤の部分を付け加えます(これは、インストール先ディレク トリによって変わります(ドライブEのJavaディレクトリのjdk1.2.2ディレクトリにインストールした場 合には「;D:\Java\jdk1.2.2\bin」となります)。なお、ここでは、大文字小文字の区別はありま せん。 PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\JDK1.2.2\BIN (下線部分は、個々の環境によって異なることがあります) 1.2の場合は、パス設定はこれだけです。1.0や1.1では、他に Class Path なども設定が必要 でした。それに較べて間単になりましたね。 |
| −−−−−−− 「目 次」にもどるよ |
| 4.試飲(ためしのみ)その1 |
| 1.おきまりの「Hello, World !」をやってみる (1)エディタを立ち上げて、以下のように入力して、「Hello.java」という名前で保存する。 ここでは、拡張子を必ず java にすることが大切。
(2)スタートボタン-->プログラム-->MS-DOSプロンプトを選び、MS-DOSプロンプトのウィンドウを 開く。 (3)(1)で保存したファイルのあるディレクトリに移動する。 じつは、MS-DOSのコマンドなんて、ものすごーく久しぶりで...キンチョーしてしまったの ですが...ディレクトリ移動のコマンドはなんとか思い出せました。 cd ですよね。 たとえば、ドライブDのJavaTestというディレクトリに保存した場合は、 C:¥Windows>cd D:\JavaTest これで、プロンプトがD:\JavaTest> となればOK。 (4)いよいよコンパイル プロンプトに続けて javac Hello.java と打ち込んだらエンターキーを押します。で、しばら くすると...コンパイル成功の場合は、もとのDOSのプロンプトに戻るだけ(上の例での場合 なら、D:\JavaTest>に戻る)。失敗の場合は、何らかのエラーメッセージが表示された後、 DOSプロンプトに戻ります。たとえば、 error:Can't read: Hell.java 1error というようなエラーメッセージが出たら、ファイル名を再確認しよう。 それ以外のエラーメッセージが出たときは、Hello.java ファイルをエディタで開いて、入力 ミスがないかチェックします。たいてい間違いが見つかります。大文字と小文字の間違いや、 行の最後のセミコロン(;)の有無の間違いが多いですね。あと1つ注意が必要なのは、全角 空白が入っているとエラーになります(文字列として" "ではさんだ部分は別)。 ☆コンパイルに成功すると、同じディレクトリにソースコードと同名で、拡張子がclassの ファイルが作られているはずです。プログラムの実行に必要なのはこのファイルです。 (5)さっそく実行 コンパイルがうまく行ったら、さっそくプログラムを実行するのだ。DOSプロンプトに続けて、 java Hello と打ち込みエンターキーを押します。 (注意)1.コンパイルの時は、javacとcを付けたが、実行の時はcは付けない。 2.コンパイルの時は、ファイル名に拡張子.javaを付けたが、実行の時は付けない。 うまく行けば、DOSプロンプトのウィンドウに Hello,World!と表示されているはず... じつに、ジミなプログラムだけれど、一応ちゃんとしたJavaのプログラムなのだ。 <まとめ> 1.エディタで作成したプログラムファイル(ソースコード)は、拡張子.javaを付けて保存。 2.コンパイルのコマンドは javac ***.java(***はファイル名) 3.実行コマンドは java ***(拡張子は付けない) |
| −−−−−−− 「目 次」にもどるよ |
| 5.試飲(ためしのみ)その2 |
| コンソールへの表示だけというのはあまりにそっけないので、今度はウィンドウを開いて、そこに文句(「ことば」のことね)を表示してみる。文字も少し派手に赤にしてみる。 ソースコードは次の通り。
(2)MS-DOSプロンプトウィンドウを開いて、保存したディレクトリに移動後、 ・>javac HelloTest.java と入力してリターンキー ----コンパイル開始 ----成功すれば、通常のMS-DOSプロンプトにもどる ・>java HelloTest と入力してリターンキー ----小さなウィンドウが開いて、Hello, Java World! と赤い文字で表示さているはず。 ----たぶん左上すみあたりに表示されるでしょう。位置指定をすれば真ん中とかにも 表示できる。文字の色やサイズも簡単な指定で、変えられる。 ということで、字体・サイズを変えて見たのが下。赤の部分を付け加えただけ。
☆ 注 意 ☆ 今回のプログラムは、ウィンドウを閉じる“仕掛け”が入っていません。閉じるためには、MS-DOS プロンプトのウィンドウに戻って、コントロールキー(Ctrl)とアルファベットのCキーを同時に押して終 了させます。 これって少し不便なので、“仕掛け”についても調べなくては... |
| −−−−−−− 「目 次」にもどるよ |
| 6.main(String args[])はおまじない? |
| アプリケーションプログラムのmainメソッドの(String args[])という引数について、ある入門書で「おまじないみたいなものだと思って、とにかくそのまま書いておけば大丈夫」というような説明を読んだ。たしかにそれで大丈夫だったけれど、使い道が何なのか気になっていたのです。[]は配列を表しているようだけど...など、頭の隅に?が引っかかっていて落ち着かなかったのです。 で、先日、この引数を利用したプログラム例に出会ったので、メモしておくことにしました。 次のプログラムは、その例を参考にして試しに作ってみたものです。
なお、args[]で取り込まれた内容は、この場合のように数であっても、文字列扱いになります。確かに、Stringと書いてありますものね。そこで、文字列を整数値に変換しているのが、 Integer.valueOf(args[]).intValue() です。 ま、本質的なことはともかくとして、なんとなくargs[]の存在理由が感じられ、頭の隅の?も消えたのです。(単純なヤツですね)
|
| −−−−−−− 「目 次」にもどるよ |
| 7.ウィンドウを閉じる仕掛け(その1) |
| 上の5と6では、閉じないウィンドウが出てきました。これじゃ不便というわけで、ウィンドウを閉じる仕掛けを試してみました。 ウィンドウを閉じるパターンには大きく分けて2通りあるんですね。 (1)ウィンドウのタイトルバーにあるクローズボタン(×の付いてるの)をクリックするか、タイト ルバーの左隅をクリックすると現れるメニューの「閉じる」を選択することによって、閉じる。 (2)画面に配置したボタンなどをクリックすることによってウィンドウを閉じるようにする。 ここでは、ウィンドウの基本的機能として一般に要求される(1)の仕掛けについて、分かる範囲でまとめておきます。 [最初にイベント処理の基本について] マウスを動かしたり、画面上のボタンをクリックしたりすると「イベント」が発生します。この「イ ベント」を捉えて色々な処理をします。たとえば、マウスの動きに合わせて絵を移動したり、ボ タンをクリックしたら画像を入れ替えたりね。 この「イベント」を捉えて処理するために、イベントの種類に応じた「イベントリスナーインター フェース」を使います。たとえば、マウスの動きによるマウスイベント(MouseEvent)を扱うには マウスリスナーインターフェース(MouseListener)を、ボタンをクリックした時に発生するイベン ト(ActionEvent)を扱うには「ActionListener」を使います。 クラスがこうしたリスナー機能を持って、イベントを処理できるようにするためには、必要に応 じて、「イベントリスナーインターフェース」をインプリメント(implements)します。 今回のウィンドウを閉じる操作に関係するのはウィンドウイベント(WindowEvent)です。この イベントを扱うリスナーインターフェースはWindowListenerです。そこで、下のサンプルプログ ラムには、”implements WindowListener”という文句が入っています。 (なお、複数のイベントリスナーインターフェースを使う場合は、カンマで区切って並べれば OKです。<例> ... implements WindowListener, MouseListener, ActionListener { ... ) しかし、WindowListenerをインプリメントしただけではダメ。さらに、次の処理が必要です。 ○コンストラクタ部分に次の1行を入れます。 addWindowListener(this); (「コンストラクタ」は、各種初期設定などを記述する特別なメソッドで、アプレットの 場合のini()メソッドに似ている) ○リスナーインターフェースが持つメソッドの再定義をする (サンプルプログラムのコメント参照) [サンプルプログラム1] これは、上の説明に基づいて作ったウィンドウを閉じるための仕掛けです。中のコメントにも 書いてあるように、余分な手間がかかる仕掛けなので、実際には使わないでしょう。あくまで も、イベント処理の基本の整理に作ってみたものです。
>java CloseWinListen で実行すると、小さなウィンドウが開きます(中味は空で、画面は真っ白 ですが、ちゃんとしたウィンドウです)。右上のクローズボタン(×ボタン)をクリックすると、ウィン ドウがちゃんと閉じるはずです。また、タイトルバーの左隅をクリックすると現れるメニューの「閉 じる」を選んでも、ウィンドウが閉じます。
[アダプタークラスを利用したイベント処理] 上のように、イベントのリスナーインターフェースを直接使うと、必要ないメソッドまで全部再 定義しなくてはならず、大変です。そこで、対応したリスナーインターフェースを持つアダプター クラスの出番です。 WindowListenerインターフェースを持つアダプタークラスは「WindowAdapter」です。下のサ ンプルプログラムは、このWindowAdapterを利用しています。 アダプタークラスを使う場合は、アダプター自身が対応するリスナーインターフェースをインプ リメントしているので、あらためてWindowListenerをインプリメントする必要がありません。 そのかわりに、コンストラクタのaddWindowListener(this);が次のように変わっています。 addWindowListener(new CloseWindow()); (この、CloseWindowというのは、WindowAdapterクラスを継承した新しいクラスで、後ほど 定義文が出てきます。) ようするに、「ウィンドウイベントの処理は、CloseWindowに任せるよ」というところですかね。 [サンプルプログラム2] 下が、アダプタークラスを利用した例です。
他に、CloseWindow.classというクラスファイルも作成されます。これを、本体と同じディレクトリに おいておかないと、実行した時にエラーになるので注意!
次は、自分で作った「閉じるよボタン」を押すとウィンドウが閉じる仕掛けについての予定です。 |
| −−−−−−− 「目 次」にもどるよ |
| 8.ウィンドウを閉じる仕掛け(その2) |
| アプリケーションプログラムなら、「終了ボタン」とかほしいですね。そこで、ボタンを押したらウィンドウが閉じてプログラムが終了する仕掛けを作ることにしました。 ボタンをクリックすることで発生するイベントを処理するわけで、イベント処理の基本は(その1)と同じです。ただし、今回発生するイベントは"ActionEvent"なるものなので、これを処理するためのリスナーインターフェースは"ActionListener"というものになります。 で、まずは、クラスの宣言部分でこのActionListenerをインプリメントするわけです。 implenents ActionListener {. ... また、今回は、イベントの発生源であるボタンにリスナーを登録します。 btn(ボタンの変数名).addActionListener(this); これで、btnにActionListenerが登録され、その処理はthis、つまりこのクラスに任せるよ、ということになるんです。「処理をこのクラスに任せるよ」ということは、このクラスの中で、"ActionListener"が持つメソッドをちゃんと定義して下さいね、ということです。 で、"ActionListener"のメソッドというのはただ1つ、actionPerformed(ActionEvent e) { } なのです。この{}の中に、ボタンがクリックされた時に行う処理の内容(今回はウィンドウを閉じるという処理です)を記述するのです。 では、さっそくサンプルプログラムです。
ただし、7のサンプルと違って、×ボタンやメニューの「閉じる」では閉じません。なぜでしょう?だって、例のWindowListenerに関する記述がどこにも入っていないからです。 そんなのはイヤ、ウィンドウらしくない、という方は、7のサンプル2のウィンドウアダプターを組み込んで下さいね。
|
| −−−−−−− 「目 次」にもどるよ |
| 8−おまけ(その1):ボタンが2つ |
基本的には8のサンプルプログラムと同じです。異なるのは、画面に配置するボタンが2つになった点です。その結果、どちらのボタンがクリックされたかにより処理を分岐することになります。
|
| −−−−−−− 「目 次」にもどるよ |
| 8−おまけ(その2):ウィンドウらしい?ウィンドウ |
おまけ(その1)にWindowListenerによる処理を付け加えたものです。ついでに、ボタンの配置にパネルを利用してみました。
|
| −−−−−−− 「目 次」にもどるよ |
| 9.システムのプロパティを取得、表示: 「ラベル」についても少々 |
Systemクラスに、システムプロパティを取得するメソッドがあります。それを利用した簡単なアプリケーションです。(20あまりあるシステムプロパティのうち10個を取り扱っています。)
○ラベル(Labelクラス)についての覚え書き ・読みとり専用文字列を表示 ・変数宣言は、 Label 変数名; (例) Label lbl1; ・実際に使うためには 変数名=new Label(); (例) lbl1 = new Label(); として、インスタンスを作成する。 その際、次のようにして、表示する文字列を指定することができる。 lbl1 = new Label("表示したい文字列"); また、次のようにして、文字列の配置方法を指定することもできる。 lbl1 = new Label("文字列", Label.CENTER); ・・・文字列を中央に置く場合 (CENTERをRIGHTにすると右詰め、LEFTにすると左詰めになる。なお、デフォルト は左詰め・・・つまり、特に指定しなければ左詰めで表示されわけです。) ・実行時に、表示文字列を指定したり、変更したい場合は、 変数名.setText("文字列"); とする。 ・実行時に、文字列の配置方法を変更することもできる。 変数名.setAlignment(Label.RIGHT);
|
| −−−−−−− 「目 次」にもどるよ |
| 10.フォントをいじってみようかな |
| ラベルやボタンに表示する文字を変更したいことがあります。たとえば、サイズを大きくしたり、太字にしたりなどなど。でも、書式設定のボタン1つで設定なんてわけには行かず、ついつい面倒だからデフォルトのフォントのままで...となりがちでした。でも、いつまでもこんなことではいけないかなと思い、この際、フォントの扱いについて整理しておこうと考えたのでした。 で、フォントを変更(デフォルトのものから)するには次のようなメソッドを使うのですね。 setFont(フォント名 , スタイル, サイズ) ・ 一般に使用できる主なフォント名は、"Dialog", "Helvetica", "TimesRoman"などで、 ""で囲んで指示します。 ・ スタイルは、「装飾無し」,「ボールド体」,「イタリック体」の3つですが、指定するときは、 それぞれ、Font.PLAIN, Font.BOLD, Font.ITALIC のように指定します。 また、Font.BOLD+Font.ITALIC とすれば、たとえば、I love you. となります。 [注意]このスタイルは「定数」扱いですから、変数に代入したい場合は、int型の変数を 使用します。 ・ 下のサンプルでは、押されたボタンごとにフォント名やスタイルを変更するので、手間を省くた め、フォント名とスタイルは変数(fname、style)に代入して処理するようにしてあります。 さて、今回のサンプルは、該当するボタンを押して、4種類のフォントの3つのスタイルの字体をながめてみようという、ただそれだけのプログラムです。
|
| −−−−−−− 「目 次」にもどるよ |
| 11.使用可能なフォントを調べてみようか |
| 個々の環境によって、javaで使用できるフォントが決まっているようです。そこで、使用できるフォントのリストを取り出し表示するプログラムを作ってみたのです。 そのフォントリストを取り出すには、次のメソッドを使用します。 Toolkit.getDefaultToolkit().getFontList() 今回のプログラムでは、使用可能なフォント名をそのフォントで表示するため、ラベルを使うことにしました。けれど、環境によってフォントの数が一定でないので、ラベルの数を事前に決められません。 どーしよー...で、VBで使った(ような気がする)「動的配列」のような感じで処理できるんじゃなかろーか、と勝手に決めたのです。 フォント名の表示に使うラベルは、Label の配列 lblFn[] として宣言します。次に、コンストラクタの中で事前準備として、3つの処理をしておきます。 (1)そのマシン環境で使用できるフォント数を取り出して、変数nに入れておく。(nはint型の 変数として宣言してあります) n = Toolkit.getDefaultToolkit().getFontList().length; (2)lblFn[]のサイズをnを使って指定 lblFn[] = new Label[n]; (2)forループを使って、n個のラベル(のインスタンス)を作成し、パネルにのせておく。 for(int i=0; i<n; i++){ lblFn[i] = new Label(); pnl.add(lblFn[i]); } ※じつは、この処理を忘れていたため動かず、しばらく悩んでいたのです。 ※なお、フォント名を取り込む変数 flist も配列にしてあり、lblFn と同様、nでサイズを 指定しています。 あとは、イベント処理のメソッド内で、使用可能フォントリストを、flist[n] に取り込んだ上、それぞれのラベル lblFn[n] に表示します。
なお、このプログラムのソースコードを、Java2でコンパイルすると「推奨されないメソッドを...」といった「警告」が出されます(getFontList()というメソッドに関するもの)が、コンパイルはしてくれていますので動きます。警告に従って新しいメソッドを使うと1.1環境で動かなくなるので、そのままにしてあります。 それにしても、javaでのフォントの扱いが、まだよく分からないのです。jdkの1.1と1.2ではフォント名も変わっているみたいだし...だれか教えて... |
| −−−−−−− 「目 次」にもどるよ |
| 12.グラフィックをいじってみる |
| VBやDelphiのくせか、なにかと「ボタン」や「ラベル」を使ってしまいまう。特に、SwingのGUI部品はずいぶんと機能もアップした上、「見映え」も良くなったので、つい使ってみたくなる。でも、やはり、ちょっと重い...ま、わたしのマシンの能力の問題もあるんでしょうがね。 グラフィックで処理できるところは、ボタン類を使わずに済ますことも考えよう、ということで、まずは基本中の基本から復習することにした。 今回は、直線・四角形・円(楕円)の描き方なのです。"art"なんて名前が付いてるけれど、あくまでも基本技術の確認のためのもの。 で、座標は、画面(ウィンドウ、フレーム)の左上の角が(0, 0)なんですね、やっぱり。なかなかなじめなくてこまります。
・今回から、{ }の配置を変えてみた。この方が対応関係が少し分かりやすいかな? ・上のLineart.htmlをクリックするとアプレットの中味を確認できる。 |
| −−−−−−− 「目 次」にもどるよ |
| 13.グラフィックその2:もっときれいに! |
| 「グラフィック」というからには”美しく”あってほしい。なんとなく、そんな気がする。同じ線や○でも、カラフルな方が幸せな気分...で、色を付けてみることにした。 public void paint(Graphics g) { g.setColor(Color.色の名前);; これ以降、線や図形は指定した色で描画される なお、四角や円(楕円)の中を塗りつぶしたい場合は、g.fillRect(4つの引数)やg.fillOval(4つの引数)を使う。これらの引数は、drawRect, drawOval の場合と同じ。 (注意)fillRect や fillOval など、塗りつぶし描画をすると、その前に描いてあった図形や 文字も塗りつぶされてしまう。 ○「文字」も描ける グラフィックオブジェクトを使って、文字も描ける。 g.drawString("文字列",基準点のx座標,y座標); (この場合の基準点は、文字列の左下端になるので注意が必要) で、今回のプログラムでは、とにかく色を使ってみると同時に、グラフィックを利用したボタンも作ってみました。
|
| −−−−−−− 「目 次」にもどるよ |
| 13-おまけ−ボタンに絵を描いてみる |
| Graphicsのオブジェクトを利用すると、いろいろな物に絵(グラフィックとしての文字も)を描けるらしい。そこで、ボタンで試してみることにした。でも、どーしたら...???実際の方法は書いてなかったし...ま、てきとーにやってみますか。と、いつもの調子でやってみたら、一応描けたみたい。 public void paint(Graphics g) { } という例のメソッドを持つ、新しいボタンのクラスを作ればなんとかなるかな、ということでやってみたのが、今回のアプレット(ボタンが表示されるだけ)です。 なお、appletviewer では表示されますが、IE(v.4) ではうまく表示されませんでした。
|
| −−−−−−− 「目 次」にもどるよ |
| 14.乱数と"switch"で占ってあげよう | |
| いままで練習してきた、イベント処理・フォント・グラフィックを利用して、おあそびプログラムを組んでみることにしました。占いアプレットです。そのために、新しく「乱数」とswitch文も使ってみることにしました。 【乱数の処理:Math.random()】 num を int型の変数とすると、 num = (int)(Math.random()*5で、0〜4のいずれかの整数値がnumに格納される。 つまり、(int)(Math.random()*nで、0からn-1の範囲の整数をランダムに作れるということ。 詳しい理由は解説書を読みましょう。 【switch文による条件の分岐】 「もし明日雨ならば、穴を掘ろう。雨でなければ、木を切ろう。」など、日々の生活でも、 いろいろな条件によって行動の仕方が決められるものです。プログラムにも条件による 処理の分岐がつきもの。 イベント処理の例では、if文による条件分岐を扱ってきた。今回は、switch文での処理 を試してみる。 <switch文の基本的な使い方> 変数(num)に入っている値によって分岐処理する例。numには0,1,2のいずれ かが入っているものとする。 switch(num) { case 0:右を向く;(numの値が0ならば) 1回おじぎをする; break; case 1:左を向く;(numの値が1ならば) 右手をあげる; break; case 2:後ろを向く;(numの値が2ならば) break; default : なにかする;(numの値がいずれにもあてはまらなかった時の ため) }
で、このアプレットで占ってみたい方はこちらです。 |
| −−−−−−− 「目 次」にもどるよ |
| 15.スレッドも使いたいね | ||
| アニメーションはもちろん、ちょっと変化のある画面を作りたいときには「スレッド」が便利ですね。アプレットでは必需品みたい。そこで、この「スレッド」を利用して「八卦堂シリーズ」のオープニング画面を作ってみることにした。 【スレッド(Threadクラス)を利用するためには】(ここでは、Appletでの使用が前提) −−−なお、ここでは、「できるだけ簡単に」を基本とする。 (1)Runnableというインターフェイスをインプリメントし、スレッドを宣言する −−−とにかく、作成するアプレットのクラス宣言部分を次のようにすればOK public void アプレット名 extends Applet implements Runnable { Thread th; (スレッドの名称はthでなくてもかまわない) (2)start()メソッドで、スレッドのインスタンスを作る public void start() { th = new Thread(this); th.start(); } (3)stop()メソッドに、スレッド停止処理を記述 public void stop() { Thread = null; } (4)run()メソッドで、描画や時間処理関連の設定を行う −−−おおよそ次のようなパターンになる public void run() { Thread me = Thread.currentThread(); While(th == me) (もっと単純な方法もあるけれど、jdk1.18など新しいバージョン では、この形の処理がお勧めのようです。) { 描画のための条件設定の変更など、一定時間ごとに実行したい 処理内容をここに記述−−たとえば、アニメーションで絵に動きを与え るために、少しずつ表示位置を変更するなど (ここでの設定に基づく実際の描画内容は、paint(Graphics g){ } に記述する) repaint() ---上での設定に基づく再描画を指示 try { th.sleep(500); スレッドの休止時間(繰り返し処理の間隔)を指定 ( )内の値の単位はミリ秒(1/1000秒) } catch(InterruptedException e){} −−−th.sleep()は、かならずtry{ }の中に記述し、その後には catch(interruptedException e){}を付ける (「例外処理」というものの関係) } (5)実際の描画内容をpaint()メソッドに記述する ・おおよそ、以上でスレッドを利用できる。スレッドの取扱い方は他にもあるけれど、 これでも動く。 ・(1)(2)(3)は定型として、ほとんどこのまま使えばOK。(4)も太字部分はほぼ 定型と考えて大丈夫。 【スレッドを使ったサンプル:八卦堂のオープニング画面候補】
|