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