• 検索結果がありません。

JAVA入門

N/A
N/A
Protected

Academic year: 2021

シェア "JAVA入門"

Copied!
47
0
0

読み込み中.... (全文を見る)

全文

(1)

JAVA入門後期③

JAVAのGUI

(JavaのGUI基本構造、いろいろな

アプレット

JAVA入門後期③

JAVAのGUI

(JavaのGUI基本構造、いろいろな

アプレット

(2)

GUI構造

GUI構造

1.GUI構造

JAVAでGUIを構築するクラスとして、下記のがあります。 ①アプレットパッケージ ② AWT ③ Swing 特に②、③はコンポーネント、パッケージを利用。

(3)

GUI構造

GUI構造

①アプレット概要 特徴 1.最初から、GUI環境が用意されている。 イベント処理などは、「アプリケーションと同様」 2.WebページのHTMLに埋め込む 3.文字列等はブラウザ依存

(4)

GUI構造

GUI構造

JAVAアプレットクラス コンパイル アプリケーションと同様 クラスファイルの作成 埋め込み タグコード記述 HTML文書

(5)

GUI構造

GUI構造

HTML文書指定 読み込み

(6)

アプレットクラスの作成

アプレットクラスの作成

1.アプレットクラスの作成

import java.awt.*;

import java.applet.*;

public class Hello extends Applet{

public static void main(Graphics g) {

g.drawString("Hello Java",10,10);

}

(7)

アプレットクラスの作成

アプレットクラスの作成

コンパイルします。

C:・・・・>javac Hello.java

C:・・・・>

(8)

アプレットクラスの作成

アプレットクラスの作成

HTMLファイルの準備 ファイル名: Hello.html <HTML> <BODY>

<APPLET CODE ="Hello.class" WIDTH = 200 HEIGHT = 100>

</APPLET> </BODY> </HTML>

(9)

アプレットクラスの作成

アプレットクラスの作成

アプレットを実行します。

C:¥・・・>appletviewer Hello.html

(10)

アプレットクラスの作成

アプレットクラスの作成

3.Webブラウザの起動

(11)

いろいろなアプレット

いろいろなアプレット

1.線描画

Graphicsクラスには、画面に文字、図を描くメ

ソッドが用意されている。(例1、図1)

2.色とフォント

Applet描画について、色、フォントの設定に関し

は次のような方法による。(例2、3)

(12)

図1.

四角形 void drawRect(int x1, int y1, int width,

int height)

多角形 void drawPolygon(int xPoints[], int y

xPoints[] int nPoints)

楕円を描く void drawOval(int x1, int y1, int width,

int height)

線を描く void drawLine(int x1, int y1, int x2, int

y2)

イメージを描く Boolean drawimage(Image img int x

int y imageObserver observer)

円弧を描く void drawArc(int x, int y, int width, int

height, int startAngle, int arcAngle)

機能 メソッド名

(13)

機能 メソッド名

フォント void setFont(Font font)

色 void setColor(Color c)

多角形(塗りつ ぶし)

void fillPolygon(int xPoints[], int y xPoints[] int nPoints)

楕円(塗りつぶ し)

void fillOval(int x1, int y1, int width, int height)

円弧(塗りつぶ し)

void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)

(14)

例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); }

(15)

線描画

線描画

ファイルSampleLine1.htmlとして <HTML>

<BODY>

<APPLET CODE ="SampleLine1.class" WIDTH = 200 HEIGHT = 100>

</APPLET> </BODY> </HTML> を用意

(16)

線描画

線描画

(17)

例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); }

(18)

線描画

線描画

ファイルSampleLine2.htmlとして <HTML>

<BODY>

<APPLET CODE ="SampleLine2.class" WIDTH = 200 HEIGHT = 100>

</APPLET> </BODY> </HTML> を用意

(19)

色の変更

色の変更

(20)

例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);

} }

(21)

線描画

線描画

ファイルSampleLine3.htmlとして <HTML>

<BODY>

<APPLET CODE ="SampleLine3.class" WIDTH = 200 HEIGHT = 100>

</APPLET> </BODY> </HTML> を用意

(22)

フォントの設定

フォントの設定

(23)

Color.blue 青 Color.cyan シアン Color.magenda マゼンダ Color.green 緑 Color.yellow 黄 Color.orange オレンジ Color.pink ピンク Color.red 赤 Color.black 黒 Color.darkGray ダークグレイ Color.gray グレイ Color.lightGray ライトグレイ Color.white 白 指定 色名

(24)

Symbol SansSerif Serif Monospaced DialogInput Dialog フォント名 Font.ITALIC Font.BOLD Font.PLAN イタリック 太字 並 フォントスタイル

(25)

画像表示

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); }

(26)

画像表示

画像表示

ファイルSampleGazo1.htmlとして <HTML>

<BODY>

<APPLET CODE ="SampleGazo1.class" WIDTH = 200 HEIGHT = 100>

</APPLET> </BODY> </HTML> を用意

(27)

画像表示

画像表示

(28)

アプレットの動作

アプレットの動作

Webブラウザ起動 アプレット初期化 init() Webブラウザ起動、再読み込み、アプレッ ト開始、再開 start() Webブラウザ終了、アプレット終了 destroy() 他のWebページに移動、アプレット停止 stop() 呼び出し時 メソッド名

(29)

アプレットの動作

アプレットの動作

処理流れ

init()を自分のクラスで定義(オーバライド)すれば ユーザがWebブラウザ起動時、最初1回行われる処理 を記述しておくことができ、 Webブラウザの動きに合わせた適切アプレットを作成 可能。

(30)

マウスに反応させる

マウスに反応させる

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); }

(31)

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); }

(32)

マウスに反応させる

マウスに反応させる

ファイルSampleMouse1.htmlとして <HTML>

<BODY>

<APPLET CODE =" SampleMouse1.class" WIDTH = 200

HEIGHT = 100> </APPLET>

</BODY> </HTML> を用意

(33)

マウスに反応させる。

マウスに反応させる。

(34)

AWTの部品とクラス

AWTの部品とクラス

ボタン、チェックボックスなどのグラフィカルな部

品が用意されています。このセットをAWT

(Abstract Window Toolkit)と呼びます。

次に一覧を上げます。

(35)

AWTの部品とクラス

AWTの部品とクラス

TexField テキストフィールド List リスト Label ラベル Choice チョイス Checkbox チェックボックス Button ボタン クラス名 部品名

(36)

AWTの部品とクラス

AWTの部品とクラス

クラス名 部品名 Frame フレーム FillDialog ファイルダイアログ Dialog ダイアログ Panel パネル Canvas キャンバス Scrollbar スクロールバー TextArea テキストエリア

(37)

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");

} }

(38)

AWTの部品とクラス

AWTの部品とクラス

ファイルSampleAWT1.htmlとして <HTML>

<BODY>

<APPLET CODE =" SampleAWT1.class" WIDTH = 200

HEIGHT = 100> </APPLET>

</BODY> </HTML> を用意

(39)

AWTの部品とクラス

AWTの部品とクラス

(40)

アニメーション

アニメーション

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();

(41)

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); }

(42)

アニメーション

アニメーション

ファイルSampleAnime1.htmlとして <HTML>

<BODY>

<APPLET CODE =" SampleAnime1.class" WIDTH = 200

HEIGHT = 100> </APPLET>

</BODY> </HTML> を用意

(43)

アニメーション

アニメーション

(44)

アプレットでできないこと

アプレットでできないこと

セキュリティ面から通常アプリケーションより制

限をされています。

アプレットではユーザのマシンのファイルを操作

することはできません。

悪意のあるアプレットでユーザのファイルが壊さ

れることを防ぐためです。

(45)

アプレットタグの埋め込み

アプレットタグの埋め込み

<APPLET>タグのソースへの埋め込み

これまでのところでは、完成したアプレットを起

動するのにHTMLファイルを用意しましたが、

小さなアプレットを作る度にHTMLファイルを用

意するのは大変なので、JAVAでは

<APPLET>タグのソースへの埋め込む

方法を用意しています。

(46)

アプレットタグの埋め込み

アプレットタグの埋め込み

例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); }

(47)

アプレットタグの埋め込み

アプレットタグの埋め込み

として、

C:¥・・・>appletviewer

SampleLine1

.java

とコマンドを入力します。

参照

関連したドキュメント

Department of Mathematics, Beijing Jiaotong University, Beijing, P. Several sets of games have been considered earlier to better understand the behaviour of mis`ere games. We

[10] J. Buchmann &amp; H.C. Williams – A key exchange system based on real quadratic fields, in Advances in Cryptology – Crypto ’89, Lect. Cantor – Computing in the Jacobian of

Löffler, 2003, Evaluating the Quality of Public Governance: Indicators, Models and Methodologies, Administration Review, Vol.. Proposta e materiali di

フィールド試験で必要な機能を 1 台に集約 世界最小クラス 10GbE テスタ (AQ1300). AQ1301 10M

• DO NOT apply a total of more than 0.4 lb ai per acre per calendar year including all application types (seed treatment, soil, foliar) of cyantraniliprole-containing products

1 100超え 191 75超え~100以下 233 50超え~75以下 267 20超え~50以下 186 10超え~20以下 129 5超え~10以下 145 1超え~5以下 51 1以下 1203 計 102.69

1 100超え 191 75超え~100以下 233 50超え~75以下 267 20超え~50以下 186 10超え~20以下 129 5超え~10以下 145 1超え~5以下 51 1以下 1203 計 102.69

The parameters set in trapezoidal operation can be used to start tuning sinusoidal mode. Begin with 6 window sinusoidal mode and then try to reduce the window