2001年6月9日更新 (ka_cap567.java)choice 文字列 からのdoubleへの変換 関谷トップページへ CG2001 トップページへ  

図形処理・計算処理実習2001 No.7 Javaでのグラフィックス(2)MoveとTurn

2001.6.4 KPC 情報技術科  関谷

1. 前回のJavaグラフィックス(1)の復習とコメント

1.Java言語とそのグラフィックスの使用例

1.1 Java言語

 テキスト(中山茂著、Java2グラフィクスプログラミング入門、技報堂出版)の「はじめに」、第1章,第2章を参照のこと。

1.2 Java言語のグラフィックス

 テキストの3.3節Javaグラフィックスの基礎と6章 Javaグラフィックスを参照のこと。
 アプレットについては、Webページを参照のこと。

1.3 Java言語での正規分布曲線のプログラム

slsでのWindowsグラフィックス用正規分布曲線のプログラムを,javaに移植したものを紹介した。なお、Javaでは図の描画で対称な両側を描くようにしている。
 アプレット プログラムの実行はgnorm_ja.htmlをクリックする。

1.4 〔javaのプログラムのコマンドラインでの開発,実行〕

1.5 「実習」 サンプルプログラムを改造して、実験する。

[ 提出するWebレポートの内容]

Javaのプログラム例(Gnorm.java, gnorm_ja.html)を解析したこと、実験したことについて, 考察のこと。

 レポートの提出方法

 Webページとして、今回分のhtmlファイルを作り、それに対するハイパーリンクを付けること。実行画面は、前述のとおり、イメージ貼り付けでなく、アプレット起動htmlファイルへのリンクすること。

1.6 学習とレポートについてのコメント

Java言語は、これまでの「オブジェクト指向言語」の最新のものでプラットフォームを選ばない。

Visual Basicは、Windowsでしか動かない「オブジェクト指向言語」だが、それを学習しているので、なじみやすいのではないでしょうか。 クラスAppletの継承により、ブラウザで見れるアプレット・プログラムが簡単に書ける。
描画などの処理は、対象(オブジェクト).メソッドとなる。

レポートのWeb提出が遅れている

就職活動や進学の願書提出などで忙しい人もいたが、未提出が1/3もいる。溜めないで、その週内にアップロードすること。

Webでのappletのレポートについて

 イメージの貼り付けでなく、htmlファイルへのハイパーリンクによること。アプレットを起動させれば、表示される時間が、現在時間で表示される。



2.今日の学習-Javaグラフィックス(2)(Glibwvクラス、イベント処理)

今日は、slsでの渦巻き模様(MoveとTurnでの練習問題56)をJavaに移植して、イベント処理によるグラフィックスを実習する。

2.1 Glibwvクラス

 slsを使ってのWindowsC言語グラフィックスでは、グラフィックスライブラリとして「河西のGlib.h」を移植して利用した。
 このグラフィックスライブラリをJava言語では、クラスGlibwv.classとして、移植した。(C言語で言えば、分割コンパイルに近い。)
移植では、メソッド名の中で組み合わせた単語の頭文字を大文字にしたものがあるので、変更には注意が必要である。  引数は、View()関数の引数を整数intにしたほかは、すべて倍精度浮動小数点型double型に変更している。
 なお、Window() とView()を使ってスケーリングをしているので、このクラスのメソッドを使用するまえに、この両者が指定されていること。
 ソースプログラムGlibwv.javaは、こちらを参照のこと。
 このクラスファイルGlibwv.classが、クラスを使用するJavaソースのコンパイルと実行時に必要となる。(カレントのフォルダ)

 (注)Window() とView()を使って、パラメータの異なる描画を3つ並べられるようにする。
パラメータの入力は、次に説明するAWT部品を使ってのイベント処理による。

2.2 イベント処理

 アプレットで、ボタンやテキストフィールド、チョイスボタンなどを使用したい。
 中山のテキストの以下を参照のこと

4章GUIとレイアウトマネージャ

(1.GUIとAWT 2.レイアウトマネージャなど)

5章 イベント処理

(1.イベント階層 2.イベント処理2.1アクションイベント処理など)

 イベントで取り込んだ文字列から数値への変換は、定石があるので、それを使えばよい。appletviewerでは、angle=Double.parseDouble(sta);で動く。
 しかし、ブラウザ(MS-IEやNS-Navigator)では、この数値への変換ができなかったので、angle=Double.parseDouble(sta);を止めて、以下のように変更した。(2001.6.9)

			Double buffer;						// 2001.6.9 sekiya for IE5 and NS
			buffer = Double.valueOf(sta);
			angle= buffer.doubleValue();  

2.3 C言語から移植した渦巻き模様appletプログラム

 ソースプログラムka_cap56.javaは、こちらを参照のこと。

 C言語のプログラムでは、キー入力をMS-DOSプロンプトの窓でscanf()関数で行っていたが、appletでは、GUI部品のテキストフィールド、チョイスボタンなどを使用する。
 3つの図を同時に表示するように改造した。(パラメータの配列での保存とviewの変更など。このために、コンパイルと実行では、Glibwv.classを必要とする。)
(パラメータは3つまでを順番に更新するようにした。)
 再描画のボタンを追加し、このボタンをクリックしたときに再描画する。
(但し、起動時は、同じ図を3枚並べている。)

2.4 実習の課題

 渦巻き模様appletプログラムをまず、動かしてみる。次に中身を解析して、改造を行う。
このプログラムの動作確認や解析だけならば、このWebページから、できる。
改造するには、ファイルサーバからコピーして、編集・コンパイルなどをして各自のフォルダで動作させること。
ソースプログラムka_cap56.java, Glibwv.java、クラスファイルGlibwv.class、HTMLファイルka_cap56.htmlはファイルサーバr:\sekiya\図形処理にあるので、コピーして,氏名など編集する。

各自のフォルダでの起動は、ka_cap56.htmlをダブルクリックするか、このhtmlファイルをappletviewerで起動する。
チョイスボタンが、IE5で使えるかどうか、確かめる。

移植したグラフィックスライブラリGlibwv.class(ソースはGlibwv.java)についても、解析する。

ブラウザで、描画した画面の印刷が出来るか、確認する。
印刷をするには、どうしたらよいか?

2.5 Webページでのレポート提出

 前回と同様である。特に、今回は,対話処理が必要だから、アプレット画面イメージの貼り付けでは、テストできない。

注) Webページの作り方については、関谷のWebページの「個人ホームページの作成と更新」のページを参照のこと。