JAVA 入 門 後 期 3 JAVAのGUI (JavaのGUI 基 本 構 造 いろいろなアプレット)
1.GUI 構 造 GUI 構 造 JAVAでGUIを 構 築 するクラスとして 下 記 のがあります 1アプレットパッケージ 2AWT 3Swing 特 に2 3はコンポーネント パッケージを 利 用
1アプレット 概 要 特 徴 GUI 構 造 1. 最 初 から GUI 環 境 が 用 意 されている イベント 処 理 などは アプリケーションと 同 様 2.WebページのHTMLに 埋 め 込 む 3. 文 字 列 等 はブラウザ 依 存
GUI 構 造 JAVAアプレットクラス コンパイル アプリケーションと 同 様 クラスファイルの 作 成 埋 め 込 み タグコード 記 述 HTML 文 書
GUI 構 造 読 み 込 み HTML 文 書 指 定 Webブラウザ アプレットビューア
アプレットクラスの 作 成 1.アプレットクラスの 作 成 import java.awt.*; import java.applet.*; public class Hello extends Applet{ public static void main(graphics g) { g.drawstring("hello Java",10,10);
アプレットクラスの 作 成 コンパイルします C: >javac Hello.java C: >
アプレットクラスの 作 成 HTMLファイルの 準 備 ファイル 名 : Hello.html <HTML> <BODY> <APPLET CODE ="Hello.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML>
アプレットクラスの 作 成 アプレットを 実 行 します C: >appletviewer Hello.html 下 記 のようにアプレットが 起 動 します
アプレットクラスの 作 成 3.Webブラウザの 起 動 次 いでHello.htmlファイルを 起 動 します
1. 線 描 画 いろいろなアプレット Graphicsクラスには 画 面 に 文 字 図 を 描 くメ ソッドが 用 意 されている ( 例 1 図 1) 2. 色 とフォント Applet 描 画 について 色 フォントの 設 定 に 関 し は 次 のような 方 法 による ( 例 2 3)
図 1. メソッド 名 void drawarc(int x, int y, int width, int height, int startangle, int arcangle) Boolean drawimage(image img int x int y imageobserver observer) void drawline(int x1, int y1, int x2, int y2) void drawoval(int x1, int y1, int width, int height) void drawpolygon(int xpoints[], int y xpoints[] int npoints) void drawrect(int x1, int y1, int width, int height) 機 能 円 弧 を 描 く イメージを 描 く 線 を 描 く 楕 円 を 描 く 多 角 形 四 角 形
メソッド 名 void fillarc(int x, int y, int width, int height, int startangle, int arcangle) void filloval(int x1, int y1, int width, int height) void fillpolygon(int xpoints[], int y xpoints[] int npoints) void setcolor(color c) void setfont(font font) 機 能 円 弧 ( 塗 りつぶ し) 楕 円 ( 塗 りつぶ し) 多 角 形 ( 塗 りつ ぶし) 色 フォント 図 1.( 続 き)
例 1. 線 描 画 import java.applet.applet; import java.awt.graphics; public class SampleLine1 extends Applet{ public void paint(graphics g){ g.drawline(10,10,100,100);
線 描 画 ファイルSampleLine1.htmlとして <HTML> <BODY> <APPLET CODE ="SampleLine1.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 線 描 画
例 2. 色 の 変 更 import java.applet.applet; import java.awt.graphics; import java.awt.color; public class SampleLine2 extends Applet{ public void paint(graphics g){ g.setcolor(color.red); g.drawline(10,10,100,100);
線 描 画 ファイルSampleLine2.htmlとして <HTML> <BODY> <APPLET CODE ="SampleLine2.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 色 の 変 更
例 3.フォントの 設 定 import java.applet.applet; import java.awt.graphics; import java.awt.color; import java.awt.font; public class SampleLine3 extends Applet{ public void paint(graphics g){ g.setcolor(color.red); g.setfont(new Font("Serif",Font.BOLD,24)); g.drawstring("hello",20,20);
線 描 画 ファイルSampleLine3.htmlとして <HTML> <BODY> <APPLET CODE ="SampleLine3.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 フォントの 設 定
色 名 白 ライトグレイ グレイ ダークグレイ 黒 赤 ピンク オレンジ 黄 緑 マゼンダ シアン 青 指 定 Color.white Color.lightGray Color.gray Color.darkGray Color.black Color.red Color.pink Color.orange Color.yellow Color.green Color.magenda Color.cyan Color.blue
フォント 名 フォントスタイル Dialog DialogInput Monospaced Serif SansSerif Symbol 並 太 字 イタリック Font.PLAN Font.BOLD Font.ITALIC
画 像 表 示 import java.applet.applet; import java.awt.graphics; import java.awt.image; public class SampleGazo1 extends Applet{ Image img; public void init() { img=getimage(getdocumentbase(),"small.jpg"); public void paint(graphics g) { g.drawimage(img,10,10,this);
画 像 表 示 ファイルSampleGazo1.htmlとして <HTML> <BODY> <APPLET CODE ="SampleGazo1.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 画 像 表 示
アプレットの 動 作 メソッド 名 init() start() stop() destroy() 呼 び 出 し 時 Webブラウザ 起 動 アプレット 初 期 化 Webブラウザ 起 動 再 読 み 込 み アプレッ ト 開 始 再 開 他 のWebページに 移 動 アプレット 停 止 Webブラウザ 終 了 アプレット 終 了
処 理 流 れ アプレットの 動 作 init()を 自 分 のクラスで 定 義 (オーバライド)すれば ユーザがWebブラウザ 起 動 時 最 初 1 回 行 われる 処 理 を 記 述 しておくことができ Webブラウザの 動 きに 合 わせた 適 切 アプレットを 作 成 可 能 init() start() stop() destroy
マウスに 反 応 させる import java.applet.applet; import java.awt.graphics; import java.awt.event.mouselistener; import java.awt.event.mouseevent; public class SampleMouse1 extends Applet implements MouseListener{ int x=10; int y=10; public void init() { addmouselistener(this);
public void mouseclicked(mouseevent e){ public void mouseentered(mouseevent e){ public void mouseexited(mouseevent e){ public void mousepressed(mouseevent e){ x = e.getx(); y = e.gety(); repaint(); public void mousereleased(mouseevent e){ public void paint(graphics g){ g.filloval(x,y,10,10);
マウスに 反 応 させる ファイルSampleMouse1.htmlとして <HTML> <BODY> <APPLET CODE =" SampleMouse1.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 マウスに 反 応 させる
AWTの 部 品 とクラス ボタン チェックボックスなどのグラフィカルな 部 品 が 用 意 されています このセットをAWT (Abstract Window Toolkit)と 呼 びます 次 に 一 覧 を 上 げます
AWTの 部 品 とクラス 部 品 名 ボタン チェックボックス チョイス ラベル リスト テキストフィールド クラス 名 Button Checkbox Choice Label List TexField
AWTの 部 品 とクラス 部 品 名 テキストエリア スクロールバー キャンバス パネル ダイアログ ファイルダイアログ フレーム クラス 名 TextArea Scrollbar Canvas Panel Dialog FillDialog Frame
import java.applet.applet; import java.awt.button; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class SampleAWT1 extends Applet implements ActionListener{ Button bt; public void init() { bt=new Button("Strat"); add(bt); bt.addactionlistener(this); public void actionperformed(actionevent ae){ bt.setlabel("stop");
AWTの 部 品 とクラス ファイルSampleAWT1.htmlとして <HTML> <BODY> <APPLET CODE =" SampleAWT1.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
実 行 AWTの 部 品 とクラス
import java.applet.applet; import java.awt.graphics; アニメーション public class SampleAnime1 extends Applet implements Runnable{ int num; public void init() { Thread th; th= new Thread(this); th.start();
public void run(){ try{ for(int i=0;i<10;i++){ num=i; repaint(); Thread.sleep(1000); catch(interruptedexception e){ public void paint(graphics g) { String str = num+"です"; g.drawstring(str,10,10);
アニメーション ファイルSampleAnime1.htmlとして <HTML> <BODY> <APPLET CODE =" SampleAnime1.class" WIDTH = 200 HEIGHT = 100> </APPLET> </BODY> </HTML> を 用 意
アニメーション 実 行 数 字 が0~9と 変 わります
アプレットでできないこと セキュリティ 面 から 通 常 アプリケーションより 制 限 をされています アプレットではユーザのマシンのファイルを 操 作 することはできません 悪 意 のあるアプレットでユーザのファイルが 壊 さ れることを 防 ぐためです
アプレットタグの 埋 め 込 み <APPLET>タグのソースへの 埋 め 込 み これまでのところでは 完 成 したアプレットを 起 動 するのにHTMLファイルを 用 意 しましたが 小 さなアプレットを 作 る 度 にHTMLファイルを 用 意 するのは 大 変 なので JAVAでは <APPLET>タグのソースへの 埋 め 込 む 方 法 を 用 意 しています
アプレットタグの 埋 め 込 み 例 1.では import java.applet.applet; import java.awt.graphics; /* <APPLET CODE ="SampleLine1.class" WIDTH = 200 HEIGHT = 100> </APPLET> */ public class SampleLine1 extends Applet{ public void paint(graphics g){ g.drawline(10,10,100,100);
として アプレットタグの 埋 め 込 み C: >appletviewer SampleLine1.java とコマンドを 入 力 します 下 記 のように 例 1.と 同 様 の 結 果 が 得 られます