18
1 社社社社社社社 Java 社社社社社社社社社 第 02 第 第第 2008 第 09 第 13

社会人学習講座 「 Java プログラミング概論」

Embed Size (px)

DESCRIPTION

社会人学習講座 「 Java プログラミング概論」. 第 02 回 後半 ( 2008 年 09 月 13 日). 今日の教材. http://flute.u-shizuoka-ken.ac.jp/~s-okubo/class/java08/ にあります。 上記 URL は、ご自宅でもアクセス可能です。 分量が沢山ありますが、全部やらなくて大丈夫です。 課題らしい課題もありません。 ソースを見て、分からないところ等ありましたら、お呼び下さい。. 今日の内容. 先週の復習と Java の基本的な部分 前回の復習1(コンパイルと実行) 前回の復習2(クラスとは) - PowerPoint PPT Presentation

Citation preview

Page 1: 社会人学習講座  「 Java プログラミング概論」

1

社会人学習講座 「 Java プログラミング概

論」

第 02 回 後半 ( 2008 年 09 月13 日)

Page 2: 社会人学習講座  「 Java プログラミング概論」

2/33

今日の教材 http://flute.u-shizuoka-ken.ac.jp/~s-okubo/cla

ss/java08/ にあります。

上記 URL は、ご自宅でもアクセス可能です。

分量が沢山ありますが、全部やらなくて大丈夫です。

課題らしい課題もありません。 ソースを見て、分からないところ等ありましたら、

お呼び下さい。

Page 3: 社会人学習講座  「 Java プログラミング概論」

3/33

今日の内容 先週の復習と Java の基本的な部分

前回の復習 1 (コンパイルと実行) 前回の復習 2 (クラスとは) static なメソッド 前回の復習 3 (クラスの継承) abstract クラス・インターフェース

Java で書く GUI Java アプレットと Swing

Page 4: 社会人学習講座  「 Java プログラミング概論」

4/33

Java アプレット

Page 5: 社会人学習講座  「 Java プログラミング概論」

5/33

Java とアプレット Java のプログラム

単独で動作するプログラム web browser 上で動作するプログラム( applet )

applet の作り方1. applet のための Java プログラムを書く2. コンパイルする3. applet を埋め込む html ファイルを書く4. web browser で html を読み込み、 applet を実行

する

Page 6: 社会人学習講座  「 Java プログラミング概論」

6/33

実行例 (1/4)1. applet の為の Java プログラムを書く

import java.applet.Applet;import java.awt.Graphics;

public class JavaApplet01 extends Applet{ public void paint(Graphics g){ g.drawString("Hello World",30,40); }}

import java.applet.Applet;import java.awt.Graphics;

public class JavaApplet01 extends Applet{ public void paint(Graphics g){ g.drawString("Hello World",30,40); }}

applet の場合、 main を含むクラスは必要ありません。

java.applet と java.awt というパッケージを利用しています。

ファイル名は JavaApplet01.java です。

Page 7: 社会人学習講座  「 Java プログラミング概論」

7/33

実行例 (2/4)2. コンパイルする

javac JavaApplet01.javajavac JavaApplet01.java

コンソールで、何時も通りにコンパイルします。

JavaApplet01.class ができます。

Page 8: 社会人学習講座  「 Java プログラミング概論」

8/33

実行例 (3/4)3. applet を埋め込む html ファイルを書く

<applet code="JavaApplet01.class" width=250 height=250></applet>

<applet code="JavaApplet01.class" width=250 height=250></applet>

テキストエディタで書いて下さい。 拡張子は html もしくは htm としましょう。

拡張子以外は自由につけてくだい。今回の例では Sample10.htm としました。

code で class ファイル名を指定 width と height で browser 上に表示するとき

のサイズを指定

Page 9: 社会人学習講座  「 Java プログラミング概論」

9/33

実行例 (4/4)4. web browser で html を読み込み、 applet を実行する

普通に、 Sample10.htm を web browser で開きます。

場合によっては、セキュリティーが云々と言うかも知れませんが、適時、処置して下さい。

今回の例では、座標 (30,40) あたりにHello World という文字列が表示されます。

Page 10: 社会人学習講座  「 Java プログラミング概論」

10/33

applet の書き方 java.applet と java.awt というパッケージを利用し

ます。 Applet というクラスを拡張したクラスを作成する

ことになります。 main というクラスは必要ありません。

その代わり、ある特定のメソッドを書くと、ある順番通りに実行されていきます。

必要なメソッドだけを記述します。

Page 11: 社会人学習講座  「 Java プログラミング概論」

11/33

標準メソッド init() メソッド

初期化が必要な時に書く。 最初に 1 回だけ実行される。

start() メソッド init() メソッドの次に実行さ

れる。 また、実行が再開されたと

きにも実行される。 stop() メソッド

アプレットの実行が中断したとき実行される。

paint() メソッド 画面線画等の具体的な記述を

行う。

repaint() メソッド 再線画を行うときに試用する。

upate() メソッド repaint() が実行されたときに

実行される。 destroy() メソッド

アプレットが終了するときに実行される。

Page 12: 社会人学習講座  「 Java プログラミング概論」

12/33

標準メソッド

init()

start() paint()

stop() destroy()

repaint()

update()

起動

終了

意図的な再線画

中断

再開

Page 13: 社会人学習講座  「 Java プログラミング概論」

13/33

GUI と Swing

Page 14: 社会人学習講座  「 Java プログラミング概論」

14/33

Java とアプレット Java には、 GUI を作るのに便利なクラスファイル

やインターフェイスが準備されています。 GUI に使用されるボタンやダイアログは、すべて

インスタンス(オブジェクト)として扱われます。 AWT と Swing があります。

AWT は、 Java に古くからあるものです。あまり効率よく動いてはくれません。

Swing は AWT の欠点とかを改善するべく作られたものです。

今回は Swing をやります

Page 15: 社会人学習講座  「 Java プログラミング概論」

15/33

基本的な流れ 次のような手順を踏みます。

1. 適切なインターフェースを実装する2. 適切なインスタンスを宣言する3. インスタンスを登録する4. インスタンスに何らかのアクションが行われた

ときに、ある動作を行いたいなら1. Java がそのアクションを関知するように

する(リスナ登録する)

2. そのアクションが行われたときに、何をするかを記述する

たとえば、ボタンのインスタンスを宣言。この時点では、まだ画面に出ません!

これで画面に出ます

Page 16: 社会人学習講座  「 Java プログラミング概論」

16/33

サンプルプログラム 1import java.applet.Applet;import java.awt.*;import java.awt.event.*;

/* <applet code="Sample11a.class" width=200 height=400> </applet>*/

public class Sample11a extends Applet{ Label lb1 = new Label("Sample11a"); String ss;

public void init(){ add(lb1); lb1.setText("Test"); ss = lb1.getText(); add(lb1); } }

import java.applet.Applet;import java.awt.*;import java.awt.event.*;

/* <applet code="Sample11a.class" width=200 height=400> </applet>*/

public class Sample11a extends Applet{ Label lb1 = new Label("Sample11a"); String ss;

public void init(){ add(lb1); lb1.setText("Test"); ss = lb1.getText(); add(lb1); } }

インスタンスを生成

インスタンスを登録

メソッドは、普通に、インスタンス名 . メソッド名で使用。

Page 17: 社会人学習講座  「 Java プログラミング概論」

17/33

サンプルプログラム 2 [1/2]import java.applet.Applet;import java.awt.*;import java.awt.event.*;

/* <applet code="Sample11b.class" width=200 height=400></applet>*/

public class Sample11b extends Applet implements ActionListener{ Button bt1 = new Button("Button 1"); Button bt2 = new Button("Button 2"); Label lb1 = new Label("Sample11b");

public void init(){ bt1.addActionListener(this); bt2.addActionListener(this); add(bt1); add(bt2); add(lb1); }

import java.applet.Applet;import java.awt.*;import java.awt.event.*;

/* <applet code="Sample11b.class" width=200 height=400></applet>*/

public class Sample11b extends Applet implements ActionListener{ Button bt1 = new Button("Button 1"); Button bt2 = new Button("Button 2"); Label lb1 = new Label("Sample11b");

public void init(){ bt1.addActionListener(this); bt2.addActionListener(this); add(bt1); add(bt2); add(lb1); }

インスタンスを生成

インスタンスを登録

ボタンが押されたことを検知するようにする

インターフェイス ActionListener を実装

Page 18: 社会人学習講座  「 Java プログラミング概論」

18/33

サンプルプログラム 2 [2/2] public void actionPerformed(ActionEvent e){ if(e.getSource() == bt1){ lb1.setText("Bottun 01"); }else if(e.getSource() == bt2){ lb1.setText("Bottun 02"); } }}

public void actionPerformed(ActionEvent e){ if(e.getSource() == bt1){ lb1.setText("Bottun 01"); }else if(e.getSource() == bt2){ lb1.setText("Bottun 02"); } }}

ボタンが押されたときに行うことを書く

どのボタンが押されたかで条件分岐