Upload
bert-duke
View
25
Download
1
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
1
社会人学習講座 「 Java プログラミング概
論」
第 02 回 後半 ( 2008 年 09 月13 日)
2/33
今日の教材 http://flute.u-shizuoka-ken.ac.jp/~s-okubo/cla
ss/java08/ にあります。
上記 URL は、ご自宅でもアクセス可能です。
分量が沢山ありますが、全部やらなくて大丈夫です。
課題らしい課題もありません。 ソースを見て、分からないところ等ありましたら、
お呼び下さい。
3/33
今日の内容 先週の復習と Java の基本的な部分
前回の復習 1 (コンパイルと実行) 前回の復習 2 (クラスとは) static なメソッド 前回の復習 3 (クラスの継承) abstract クラス・インターフェース
Java で書く GUI Java アプレットと Swing
4/33
Java アプレット
5/33
Java とアプレット Java のプログラム
単独で動作するプログラム web browser 上で動作するプログラム( applet )
applet の作り方1. applet のための Java プログラムを書く2. コンパイルする3. applet を埋め込む html ファイルを書く4. web browser で html を読み込み、 applet を実行
する
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 です。
7/33
実行例 (2/4)2. コンパイルする
javac JavaApplet01.javajavac JavaApplet01.java
コンソールで、何時も通りにコンパイルします。
JavaApplet01.class ができます。
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 上に表示するとき
のサイズを指定
9/33
実行例 (4/4)4. web browser で html を読み込み、 applet を実行する
普通に、 Sample10.htm を web browser で開きます。
場合によっては、セキュリティーが云々と言うかも知れませんが、適時、処置して下さい。
今回の例では、座標 (30,40) あたりにHello World という文字列が表示されます。
10/33
applet の書き方 java.applet と java.awt というパッケージを利用し
ます。 Applet というクラスを拡張したクラスを作成する
ことになります。 main というクラスは必要ありません。
その代わり、ある特定のメソッドを書くと、ある順番通りに実行されていきます。
必要なメソッドだけを記述します。
11/33
標準メソッド init() メソッド
初期化が必要な時に書く。 最初に 1 回だけ実行される。
start() メソッド init() メソッドの次に実行さ
れる。 また、実行が再開されたと
きにも実行される。 stop() メソッド
アプレットの実行が中断したとき実行される。
paint() メソッド 画面線画等の具体的な記述を
行う。
repaint() メソッド 再線画を行うときに試用する。
upate() メソッド repaint() が実行されたときに
実行される。 destroy() メソッド
アプレットが終了するときに実行される。
12/33
標準メソッド
init()
start() paint()
stop() destroy()
repaint()
update()
起動
終了
意図的な再線画
中断
再開
13/33
GUI と Swing
14/33
Java とアプレット Java には、 GUI を作るのに便利なクラスファイル
やインターフェイスが準備されています。 GUI に使用されるボタンやダイアログは、すべて
インスタンス(オブジェクト)として扱われます。 AWT と Swing があります。
AWT は、 Java に古くからあるものです。あまり効率よく動いてはくれません。
Swing は AWT の欠点とかを改善するべく作られたものです。
今回は Swing をやります
15/33
基本的な流れ 次のような手順を踏みます。
1. 適切なインターフェースを実装する2. 適切なインスタンスを宣言する3. インスタンスを登録する4. インスタンスに何らかのアクションが行われた
ときに、ある動作を行いたいなら1. Java がそのアクションを関知するように
する(リスナ登録する)
2. そのアクションが行われたときに、何をするかを記述する
たとえば、ボタンのインスタンスを宣言。この時点では、まだ画面に出ません!
これで画面に出ます
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); } }
インスタンスを生成
インスタンスを登録
メソッドは、普通に、インスタンス名 . メソッド名で使用。
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 を実装
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"); } }}
ボタンが押されたときに行うことを書く
どのボタンが押されたかで条件分岐