JAVA入門後期③ JAVAのGUI (JavaのGUI基本構造、いろいろなアプレット) GUI構造 1.GUI構造 JAVAでGUIを構築するクラスとして、下記のがあります。 ①アプレットパッケージ ② AWT ③ Swing 特に②、③はコンポーネント、パッケージを利用。 GUI構造 ①アプレット概要 特徴 1.最初から、GUI環境が用意されている。 イベント処理などは、「アプリケーションと同様」 2.WebページのHTMLに埋め込む 3.文字列等はブラウザ依存 GUI構造 JAVAアプレットクラス コンパイル アプリケーションと同様 クラスファイルの作成 埋め込み HTML文書 タグコード記述 GUI構造 読み込み Webブラウザ HTML文書指定 アプレットビューア アプレットクラスの作成 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) メソッド名 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) 図1. 機能 円弧を描く イメージを描く 線を描く 楕円を描く 多角形 四角形 メソッド名 機能 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 並 Font.PLAN DialogInput 太字 Font.BOLD Monospaced イタリック Font.ITALIC Serif SansSerif Symbol 画像表示 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() 呼び出し時 Webブラウザ起動 アプレット初期化 start() stop() Webブラウザ起動、再読み込み、アプレッ ト開始、再開 他のWebページに移動、アプレット停止 destroy() 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.と同様の結果が得られます。
© Copyright 2024 ExpyDoc