オブジェクト指向言語 第12回 アプレット.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
初年次セミナー 第13回 2次元グラフィックス(1).
社会人学習講座 「Javaプログラミング概論」
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
GridLayout オブジェクト(省略)
プログラミング演習3 李 亜民クラス 第2回 ラスタライズ.
プログラミング基礎I(再) 山元進.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
JAVA GUIプログラミング 第6回 TextFieldとLabel.
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アプレット (Applet)について.
1.Java 概要 2.簡単なアプレット 3.動画を表示するアプレット 4.アプレットの改良 5.開発環境の利用(データベース)
Iアプリプログラミング その1  鳥居秀徳.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
JAVA.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
 Applet アプレット ◇長い長いアプレット講座◇.
プログラミングIII演習 第1回目.
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
Javaプログラムの実行まで バイト Javaの コード 実行 ソースコード Java ファイル名 ファイル名 abc.java
アプレット プログラミング 第10回 アプレット プログラミング第10回.
RMI ソフトウェア特論 第6回 /
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング演習3 第2回 GUIの復習.
基礎プログラミング演習 第10回.
ソフトウェア工学 知能情報学部 新田直也.
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
グラフィックス、その1 色の表示 フォントを変えて文字を表示 直線、四角形、楕円形の描画 円弧の描画 多角形の描画
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
JAVA入門後期⑩ 情報処理試験例題解説.
アルゴリズムとプログラミング (Algorithms and Programming)
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第4回 javaのプログラミング 04A2029           古賀慎也.
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
JAVA入門後期③ JAVAのGUI (JavaのGUI基本構造、いろいろなアプレット)
JAVA入門後期⑥ JAVAのAWTの基本構造 (レイアウトマネージャー、 ウインドウ型アプリケーション)
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
テキスト 1 行目 テキスト 2 行目 テキスト 3 行目 (初級) 森の背景の上にフェード インするアニメーション化されたキャプション
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
オブジェクト プログラミング 第2回 プログラムの基本.
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
スライドの終わりまでテキストが繰り返しスクロールされます • スライドの終わりまでテキストが繰り返しスクロールされます •
サンプル見出し テキスト 1 行目 テキスト 2 行目 テキスト 3 行目 (中級) 図の背後でタイトルを移動させるアニメーション効果
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
5-5 文字列の描画 (1)基本的な文字列描画 A.手順
Presentation transcript:

オブジェクト指向言語 第12回 アプレット

出席確認 確認ページ 確認の手順 http://www.iis.it-hiroshima.ac.jp/~zhxh/ ユーザ登録(最初1回のみ) ユーザ名は学生番号 (例:BA06300) パスワードは忘れないように !! ログイン 登録したユーザ・パスワードでログイン キーナンバー

アプレットの概要

アプレットの基本スタイル(1) アプレット(Applet) アプレットプログラムの基本スタイル     ・ Webブラウザ(IE, FireFox, Opera等)上で起動するプログラム     ・ アプレットを作るときは,アプレットとしての基本的な機能を持って       いるAppletクラスを継承して作る。 アプレットプログラムの基本スタイル import java.applet.Applet; // アプレット関連機能のインポート import java.awt.Graphics; // 描画関連機能のインポート import ..... // その他のインポート public class アプレット名 extends Applet{//アプレットクラスの継承 .... }

アプレットの基本スタイル(2) HTMLファイルの準備 JavaアプレットをWebブラウザ上で実行するためには,Webブラウ    指示を入れる。 Javaアプレットを起動するHTMLの例    ここでは,MyAplt.classという名前のJavaアプレットを起動するよう    にHTMLで指示する。 <html> <body> <applet code="Myaplt.class" width=300 height=100> </applet> </body> </html> <applet ~~~ > </applet>

アプレットの基本スタイル(3) アプレットの実行 アプレットビューアでの実行 ① MyAplt.javaを記述し,コンパイルしてMyAplt.classを作成 ② MyAplt.classを起動するように記述したMyAplt.htmlを作成 ③ Webブラウザ上でURLとしてMyAplt.htmlを指定して起動する   -- HTMLファイルの名前は任意であり,.class名と同じである          必要は無い。 アプレットビューアでの実行    ・ Javaアプレットの開発をスムーズに行うため,Webブラウザが無く      てもJavaアプレットを実行できる環境が用意されている。これが,         アプレットビューアである。    ・ appletviewer MyAplt.html

アプレットの基本スタイル(4) わざわざJavaアプレットに対応するHTMLを用意しなくてもよい。 この場合、HTMLの<APPLET>タグをソースファイルに埋め込む import java.applet.Applet; import java.awt.Graphics; /* <APPLET CODE=“MyAplt.class” ~> </APPLET> */ public class MyAplt extends Applet{ いろいろな記述 } appletviewerは意味の ないデータとみなす javacは コメント とみなす appletviewer は意味のない データとみなす コンパイルしたあと、次のように実行する appletviewer MyAplt.java 注:この記述はIEで実行できない。あくまでも開発中用である

アプレットクラスの継承関係 Javaアプレットを作成するときには,Appletクラスを継承(拡張)する。 継承関係を示す。 java.lang.Object ベースクラス java.awt.Compornent ボタン,部品の定義 java.awt.Container 複数の部品を格納するクラス レイアウトに使用する コンテナ java.awt.Panel アプレット クラス java.applet.Applet

アプレットの作成

簡単なアプレットの作成 Javaアプレットプログラム:JaAplt1.java HTMLファイル: JaAplt1.html Appletクラスを拡張したクラスでは アプレットが画面表示されるときに、 paint()メソッドが自動てきに呼び 出されるようになっている import java.applet.Applet; import java.awt.Graphics; public class JaAplt1 extends Applet { public void paint(Graphics g) { g.drawString("はじめてのアプレット", 30, 40); } 引数がいつもGraphics gである 画面上(30, 40)のところから文字を“描く” <html> <body> <applet code="JaAplt1.class" width=300 height=100> </applet> </body> </html>

アプレットの標準メソッド Javaアプレットにはスーパークラスから継承した基本的な機能 を持つメソッドがある。独自の処理を行うためには,これらの メソッドをオーバーライドする必要がある。 メソッド名 意味 init() 初期化メソッド,最初に1回だけ呼び出される。 start() init()の次に呼び出される。アプレットの再表示などに利用される。 stop() アプレットを実行中断するときに呼び出される。 destory() アプレットを完全終了するときに呼び出される。 paint() 画面描画の具体的な記述を入れる。最も重要なメソッド。 repaint() 意図的な再描画のために呼び出される。なかにupdate()が実行され、そこからpaint()を呼び出す。 update() paint()メソッドを呼び出して再描画する。画面処理に関する特殊処理を記述する場合がある。

アプレットの動作順序 コードで再描画 指示する 起動 init() repaint() start() update() paint() 窓復元 init() repaint() start() update() paint() 例えば、窓最小化 stop() destroy() 窓を閉じる 起動 注:アプレットにmainメソッドは不要

Graphicsクラスを理解する paint()メソッドは以下のようになっていた。   public void paint (Graphics g) { ... } この引数であるGraphicsクラスのオブジェクトは画面への グラフィクス描画を行うために使用される。 Graphicsクラスで描画できる図形は,   文字列,線,円,四角形,イメージ などがある。

Graphicクラスの主要メソッド(1) abstract void clearRect(int x int y, int width, int height) 指定された矩形をクリアする(現在の背景色で塗りつぶす) abstract void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle) 指定された矩形に接する円弧または楕円弧を描く。startAngleで開始角度を指定しarcAngleで弧の展開角度を指定する。 abstract boolean drawImage(Image img, int x, int y, ImageObserver observer) 指定されたイメージを座標(x,y)の位置を左上隅にして描く。 abstract boolean drawImage(Image img, int x, int y,int width, int hight, ImageObserver observer) 指定されたイメージを指定された矩形の内部に納まるようスケーリングして描く。 abstract drawLine(int x1, int y1, int x2, int y2) 座標(x1, y1)から座標(x2, y2)へ直線を描く

Graphicクラスの主要メソッド(2) abstract void drawOval(int x, int y, int width, int height) 指定の矩形内に収まる円または楕円を描く void drawRect(int x, int y, int width, int height) (x,y)を左上隅とする矩形を描く abstract void drawString(String str, int x, int y) 座標(x,y)に文字列を描く。 abstract void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle) 指定された矩形に接する円弧を描き,内部を現在の色で塗りつぶす。 abstract void fillOval(int x, int y, int width, int height) 指定の矩形内に接する円弧を現在の色で塗りつぶす。 abstract void fillRect(int x, int y, int width, int height) 指定の矩形を現在の色で塗りつぶす。

Graphicクラスの主要メソッド(3) abstract Font getFont() 現在のフォントを返す abstract void setColor(Color c) 色を設定する abstract void setFont(Font font) フォントを設定する

テキスト表示

テキスト表示(1) テキスト表示メソッド void drawString(Sting str, int x, int y) 引数で渡されたGraphicsクラスのオブジェクトgに対して行われるので, g.drawString(文字列,x座標,y座標); として呼び出せばよい。 Fontクラスのコンストラクタ Font(String フォント名, int 書体, int ポイント数); フォント名:Dialog,DialogInput,Monospaced,Serif,SansSerif 書体 : Font.PLAIN,Font.BOLD,Font,ITALIC 重複指定の時には Font.BOLD | Font.ITARIC のように指定する。 ポイント : ポイントサイズを数値で指定

テキスト表示(2) appletviewerだけで 動作させるための おまじない import java.applet.Applet; import java.awt.Graphics; import java.awt.Font; /* <APPLET CODE="JaFont1.class" WIDTH=300 HEIGHT=140> </APPLET> */ public class JaFont1 extends Applet { // JaFont1.java [java] public void paint(Graphics g) { String ss = "ABCabc文字列"; g.drawString(ss, 10, 20); //文字列を表示 g.setFont(new Font("Serif", Font.BOLD, 24)); //Serif、太字、24pt g.drawString(ss, 10, 50); g.setFont(new Font("MS ゴシック", Font.PLAIN, 24)); //ゴシック、普通、24pt g.drawString(ss, 10, 80); g.setFont(new Font("MS 明朝", Font.ITALIC, 36)); // 明朝、斜体、36pt g.drawString(ss, 10, 120); } appletviewerだけで 動作させるための おまじない

テキスト表示(3) プログラムを作成 JaFont1.java Javaコンパイラでコンパイル javac JaFont1.java アプレットビューワによる表示 appletviewer JaFont1.java javaプログラム内にあるhtmlコードを利用する。 実行結果

描画を行う

描画の例 import java.applet.Applet; import java.awt.*; /* <APPLET CODE="JaDraw1.class" WIDTH=300 HEIGHT=340> </APPLET> */ public class JaDraw1 extends Applet { public void paint(Graphics g) { int x1 = 70, wd1 = 150, ht1 = 30; g.drawLine(x1, 10, x1+wd1, 40); // 直線 g.drawRect(x1, 50, wd1, ht1); // 矩形 g.fillRect(x1, 90, wd1, ht1); // 矩形塗り潰し g.drawOval(x1, 130, wd1, ht1); // 楕円 g.fillOval(x1, 170, wd1, ht1); // 楕円塗り潰し g.drawArc(x1, 210, 50, 50, 0, 270); // 円弧 g.fillArc(x1+100, 210, 50, 50, 0, 270); // 円弧塗り潰し g.fillRect(x1, 270, wd1, 50); // 矩形塗りつぶし g.clearRect(x1+10, 280, wd1-20, 30); // 矩形クリア }

色を指定する

色の指定 背景色を指定する g.setBackground(Color.gray); Graphicsクラスオブジェクトgのバックグラウンドカラーを灰色にする。 現在色を指定する g.setColor(Color.red); 現在色を赤に指定する。この後に描かれるものは赤色になる。 色指定の表は教科書344ページ表20-2を参照すること。 色をRGBで指定 Color(0, 0, 0) 黒 Color(0, 0, 255)      青

色指定の例 import java.applet.Applet; import java.awt.*; /* <APPLET CODE="JaClr1.class" WIDTH=300 HEIGHT=100> </APPLET> */ public class JaClr1 extends Applet { static int yy; public void paint(Graphics g) { yy = 10; setBackground(SystemColor.control); // 背景色:標準 g.setColor(Color.blue); // 青指定 g.fillRect(10, yy, 190, 29); g.drawString("現在色:青", 210, yy+15); yy += 50; g.setColor(new Color(0, 255, 0)); // RGBで緑指定 g.drawString("現在色:緑", 210 , yy+15); }

課 題 以下の実行結果となるようなJavaアプレットプログラムを作成しなさい。ただし,以下のソースコードを利用すること。また、各描画要素に好きな色を付けてもよい。 import java.applet.Applet; import java.awt.*; /* <APPLET CODE=“ob12.class" WIDTH=300 HEIGHT=200> </APPLET> */ public class ob12 extends Applet { public void paint(Graphics g) { // ここを作成!! }

課題のヒント 縦横の線は,300×200ドットを6×4に分けるように引いているので,50ドットづつの線であることがわかる。したがって,そのような座標を指定してg.drawLineメソッドを呼び出せばよい。 ●○\は縦方向に3個づつ繰り返されている。直接書いても良いが,このルールを使ってプログラミングをすればよい。 int i=0; for (横方向繰り返し) { for (縦方向繰り返し) { if (i%3 == 0 ) ●を描く; if (i%3 == 1 ) ○を描く; if (i%3 == 2 ) \を描く; i++; }