2000.07.05 KPC 情報技術科 関谷
前々々回からは、テキストのJavaプログラムでの例題のファイル(サーバにコピーしたもの)を紹介した。index.htmlファイルで目次ページになっているので、Javaでの実行画面例とjavaソースリストが見れる。今後は、これを参照しながら、学習していく。
マルチメディアとは、複合媒体(文字、映像、音声など)であり、双方向の通信可能な媒体である。サウンドや静止画像、アニメーションに挑戦してみる。
サンプルのプログラムの動作を確認したら、ソースプログラムを改造して、タイトル(プログラム名や作成者名,年月日など)を表示したり、ファイル名を表示したりして、何をどうしているのかを説明するものを追加すること。
Rドライブ(ファイルサーバ)の\sekiya\図形処理\java2F_szフォルダに、F1.javaからF6t.javaまでのsekiyaが改造した例を、参考にして良い。
画像ファイルをファイルダイアログで選択して読み込んで、オリジナル・サイズのほかに拡大・縮小をチョイスで指定して表示する。
(6.28午後の補足追加)このアプリケーションをアプレットに変更したものGraphicsF5t.html(,java,class)をファイルサーバにコピーしているので、参照のこと。変更点については、このページの最後の3.2に再録している。
ただし、IE5.0では、ファイルダイアログが起動しないので、予め、1つの画像ファイルを読み込むようにしている。(appletviewerでは、正常にダイアログから読める。)
Javaのプログラム構造を考察すること。(クラスやイベント処理)
そして、第7章のJavaプログラムの改造をする。あるいは、逆の順序でも良いが。
アプリケーションからアプレットプログラムへの変換は、少し,面倒ではあるが、慣れて欲しい。
(アプリケーションとアプレットとを共用にしなければ、簡単になる。)
(参考)鍋田さんのWebページには、Appletに変更した画像に落書きするプログラムがある。宝満さんのページでは、画像をチョイスするプログラムをまだ、デバッグ中。
Java2Dとは、AWTの機能を向上させて、とくにグラフィックスやテキスト、画像を、より効果的に表現し、2Dグラフィックスや2Dイメージ操作を向上させたもので、Java2のコアAPIに組み込まれている。
(注)画面のイメージとソースリストは、ファイルサーバにあるjava2igpのindex.htmlを開けば、ブラウザで一覧できる。
同じフォルダにソースとバイトコード(*.class)を用意している。アプリケーションプログラムの実行(対話処理)は、java クラス名である。
サンプルのプログラムの動作を確認したら、ソースプログラムを改造して、タイトル(プログラム名や作成者名,年月日など)を表示したり、ファイル名を表示したりして、何をどうしているのかを説明するものを追加すること。
Java2Dの特徴、パッケージを説明している。
これは、slsでのWindowsプログラミングと違って、クラスAffineTransformを使い、簡単にプログラムできる。
(2000.7.6)例GraphicsG12.javaを、アプレットに変更したものGraphicsG12t.javaを示す。残念ながら、ブラウザIE5.01では、このアプレットが動作しないので、appletviewerで見ることになる。
例G22 画像のフィルタ処理(ConvolveOp)をアプレットプログラムに変換した例である。残念ながら、このアプレットは、appletviewerでしか、実行できなかった。
テキスト8章の解説を読み、例題をコンパイルし、実行してみる。
それらの中で、皆さんの興味を持った例を詳しく解析し、改造しなさい。
レポートには、それらの中から、appletに変更して、ハイパーリンクのこと。ただし、画像のファイルを読むプログラムは、appletの場合、テキストp.168の注意にあるように、getImage()の呼び方が違うので、それに合わせて変更のこと。
javaソースと実行できるappletのほかに、考察をhtmlファイルには追加すること。
(注1)Appletプログラムの作り方については、前5回のプログラム例を参考にするとよい。init()メソッドで初期化するほかに、htmlファイルで、窓のサイズを指定している。テキストフィールドでインタラクティブに変えるようにすれば、変化のあるWebページとなる。
GraphicsF5t.javaでの変更内容を以下に示す。(再録、ソースはファイルサーハ) 1)先頭に追加 import java.applet.*; 2)class名-ファイル名も-の変更とその派生元のchg(Applet <- Frame) 3)main()をコメントにする/* public static void main(String ar[]) { 4)ボタンの追加(メニューバーに代わる) from MenuBar 5)コンストラクタをinit()に変更・追加(例public void init() <- GraphicsF5()) 6)init()にボタンを生成し追加、アクションシスナーを追加 7)setLayout(new BorderLayout());を追加 8)削除 // addWindowListener(new WinAdapter()); 9)削除 // class WinAdapter extends WindowAdapter { 10)public void actionPerformed(ActionEvent ae) {でのイベント処理の変更(メニューバーを止めて、ボタンの処理に) などである。
なお、fileDialogがIE5.0で動作しなかったので、init()で1つのファイルを読み込むように変更している。
(注2)Webページの形式として、左上に、テキスト名、プログラム名、氏名番号などのタイトル行、さらにパラメータの表示行などを追加すること。
前2回と同様で、appletタグを持つhtmlファイルへのハイパーリンクとする。(インタラクティブなプログラムでのイメージの貼り付けは、望ましくない。)