Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "オブジェクト指向言語 第12回 アプレット."— Presentation transcript:

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

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

3 アプレットの概要

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

5 アプレットの基本スタイル(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>

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

7 アプレットの基本スタイル(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で実行できない。あくまでも開発中用である

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

9 アプレットの作成

10 簡単なアプレットの作成 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>

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

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

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

14 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)へ直線を描く

15 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) 指定の矩形を現在の色で塗りつぶす。

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

17 テキスト表示

18 テキスト表示(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 のように指定する。 ポイント : ポイントサイズを数値で指定

19 テキスト表示(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だけで 動作させるための おまじない

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

21 描画を行う

22 描画の例 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, , 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); // 矩形クリア }

23 色を指定する

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

25 色指定の例 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); }

26 課 題 以下の実行結果となるような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) { // ここを作成!! }

27 課題のヒント 縦横の線は,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++; }


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

Similar presentations


Ads by Google