JAVA入門後期④ イベント、AWT、の基本構造、スレッド

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
         第9回 Swing.
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
JSFによるWebアプリケーション開発 第9回
Applet 岡部 祐典 鈴木 敬幸.
GUIコンポーネントの設定と配置 Creation and positioning of GUI components
JAVA GUIプログラミング 第6回 TextFieldとLabel.
復習ーII (General Review II)
オブジェクト指向言語 第12回 アプレット.
アプレット (Applet)について.
1.Java 概要 2.簡単なアプレット 3.動画を表示するアプレット 4.アプレットの改良 5.開発環境の利用(データベース)
Iアプリプログラミング その1  鳥居秀徳.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
Javaレクチャー ーSwing入門ー.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
 Applet アプレット ◇長い長いアプレット講座◇.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
例外処理 Exception Handling
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
Javaプログラムの実行まで バイト Javaの コード 実行 ソースコード Java ファイル名 ファイル名 abc.java
第14回独習Javaゼミ セクション1~3 発表者 直江 宗紀.
アプレット プログラミング 第10回 アプレット プログラミング第10回.
プログラミング演習3 第2回 GUIの復習.
JAVA入門後期⑨ JAVAのSwingのメニュー処理
アルゴリズムとデータ構造演習(6月24日) グラフィックス、その2 テキストフィールドで入力する チェックボックスで1つ以上指定する
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
Java/Swingについて (2) 2005年10月11日 海谷 治彦.
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
JAVA入門後期⑦ JAVAのSwingの基本構造
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
第15回独習Javaゼミ セクション14~15 発表者 直江宗紀.
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
ソフトウェア制作論 平成30年12月5日.
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
JAVA入門後期③ JAVAのGUI (JavaのGUI基本構造、いろいろなアプレット)
JAVA入門後期⑥ JAVAのAWTの基本構造 (レイアウトマネージャー、 ウインドウ型アプリケーション)
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
プログラミングⅠ 平成30年10月22日 森田 彦.
システムエンジニアリング演習 GUIの実現(1):AWT 11月6日.
GUIプログラミングの基本=イベント イベントとは イベントの例 ウィンドウやウィンドウ内のパーツ(ボタン・スクロールバーなど)に発生する
アルゴリズムとプログラミング (Algorithms and Programming)
ソフトウェア工学 知能情報学部 新田直也.
JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
システムエンジニアリング演習 GUIの実現(2):イベント処理 11月13日.
C#プログラミング実習 第3回.
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

JAVA入門後期④ イベント、AWT、の基本構造、スレッド

イベント処理 イベント処理 これまでの処理は、データ表示など。 マウスクリックなどの場合、何らかの処理が起 こります。 (1)マウスクリックの信号が発生 (2)システムが「信号」を受け取ると、メソッドが実行される。 この「信号」をイベントという。 操作→イベント発生、イベント判断→メソッド実行 これらを「イベント処理」という。

イベント処理 1.マウスのイベント(表示) mouseEnterd・・・マウスが入ってきたとき mouseExited・・・マウスが出て行ったとき mousePressed・・・マウスボタン押下時 mouseReleased・・・マウスボタン放したとき 2.イベントリスナの登録 イベント処理ができるようになるにはイベントリ スナの登録が必要 addMouseListener(this); ーthisをマウスのイベントリスナとして登録。 thisは「このクラスそのもの」を表示

イベント処理 3.イベントリスナの削除 4.イベント対応メソッドの実装 イベント機能を削除したい場合、remove系を用いる。 removeMouseListener(this); 4.イベント対応メソッドの実装 イベント対応のインターフェイスの実装 public class クラス名 extends Applet imlements MouseListener { 5.マウスクリックの実装の記述 public void mouseClicked(MouseEvent e){ x=e.getx(); y=e.gety(); repaint(); }

イベント処理 (MouseEvent e)は、マウスクリックされたとき 収集されたイベント情報。 2.mouseClicked()呼び出し→ MouseEventオブジェクト引数渡し。  mouseClicked()はマウスクリック座標などを知ることができる。

import java.applet.Applet; import java.awt.*; import java.awt.event.*; /* <applet code = "EventTest05.class" width = 300 height = 200></applet> */ public class EventTest05 extends Applet implements MouseListener{ String s1 = "", s2 = ""; int x = -1, y; public void init(){ addMouseListener(this); } public void paint(Graphics g){ g.drawString(s1, 10, 10); g.drawString(s2, 10, 20); Java.awtとJava.awt.eventは 異なるものなので両者が必要 MouseListenerインターフェイスの実装 イベント取得準備

public void mouseEntered(MouseEvent m){ s1 = "mouseEntered"; if(x != -1){ g.drawLine(x-10, y, x+10, y); g.drawLine(x, y-10, x, y+10); } public void mouseEntered(MouseEvent m){ s1 = "mouseEntered"; repaint(); public void mouseExited(MouseEvent m){ s1 = "mouseExited"; マウスのイベント によるメソッド

public void mouseClicked(MouseEvent m){ x = m.getX(); y = m.getY(); repaint(); } public void mousePressed(MouseEvent e){ s2 = "mousePressed"; public void mouseReleased(MouseEvent e){ s2 = "mouseReleased";

AWT AWTにつきまして  1.AWT (Abstract Windowing Tools)は、Java で GUIアプリケーションを作成するためのクラスライブラリです。現在では Swing もよく利用されていますが、Swing よりも軽い GUIアプリケーションを作成することが可能です。 2. AWTにはボタン、ラベル、数種類のコンポーネントが用意されています。ラベル、ボタンにはGIF、JPEGなどのイメージが表示されません。

AWT AWTコンポーネント 「java.awt」、 「java.awt.event.*」をインポート ントに関するパッケージで、両者は異なる性質 なので別々にインポートする必要がある。 主なコンポーネントは次頁。

AWTコンポーネント クラス 機能 Button ボタン Label ラベル TextField TextArea テキスト・エリア テキスト・フィールド(単一行) TextArea テキスト・エリア Checkbox チェック・ボックス Choice 選択用ボックス Canvas キャンバス List リスト・ボックス Scrollbar スクロール・バー

ボタン( Button ) 3.ボタンオブジェクト生成(コンストラクタ) ボタン配置手順 ①オブジェクトの生成  Button btn1 = new Button([string label[]); ②配置 add(btn1); 別法1. Button btn1; btn1 = new Button(“ボタン1”); 別法2. add(btn1 = new Button(“ボタン1”));

ボタン( Button ) 重要なメソッドは次の通り イベント処理 キャプションの設定 void addActionListener(new ActionListener) 複数個ある場合の識別方法 イベントのオブジェクト名.getSource() キャプションの設定 void setLabel(String Label) キャプションの取得 String getLabel ()

ラベル(Label) Label([String text, int alignment]) Label.CENTER 中央揃え Label.RIGHT 右揃え Label.LEFT 左揃え ラベルをフレームに配置 ① Label lab1 = new Label(“ラベル1”, Label.CENTER); ② add(lab1); イベント処理 なし 複数個ある場合の識別方法 イベントのオブジェクト名.getSource() テキストの設定 void setText(String text) テキストの取得 String getText()

テキスト・フィールド(TextField) TextField(String text) TextField(String text, int columns) 注) columnsは、表示する文字の数(列数) テキスト・フィールドをフレームに配置 ①  TextField  txt1 = new Label(“名前”); ② add(txt1); イベント処理 void addActionListener(new ActionListener) 複数個ある場合の識別方法 イベントのオブジェクト名.getSource() テキストの設定 void setText(String text) テキストの取得 String getText()

AWTのイベント処理 ①「AWTコンポーネントのイベント」 ②「マウスとキーボードに対するイベント」 ①の詳細 イベント発生「ボタン」コンポーネントを、「イベント・ソー ス」という。このイベント・ソースに対して、「クリック」、 「ダブル・クリック」、「ドラッグ」などのイベントを発生さ せる。 実際のイベント処理を行うには以下の手順を踏みます。

AWTのイベント処理 1.import java.awt.event.*; 2.イベントソースをイベントリスナーに登録 3.イベントリスナーはボタンのとき、「ActionListner」、コンボ・ボックスは「ItemListner」となる。 4.実際のイベント処理は「イベント処理メソッド」で実行。それぞれのイベントに対応したメソッドはイベント・リスナーに用意されている。 5.イベント発生後、必要イベント処理が実行される。  ボタンのイベント処理はメソッドは「actionPerformed」

AWTのイベント処理 AWTの主なコンポーネントに必要なものは次の通り イベント・リスナー イベント名 イベント・メソッド Button、TextFied、List ActionListener ActionEvent actionPerformed Checkbox, Choice ItemListner ItemEvent itemStateChanged Scrollbar AdjustmentListener AdjustmentEvent adjustementValueChanged この他の「Label」「TextArea」「Canvas」のイベント処理 は設定不可。

AWTのイベント処理 イベントリスナー登録方法① 例. Button btn1 = new Button("ボタン1 "); Btn1.addActionListner( new ActionListener() { public void actionperformer(ActionEvent e) ボタン1クリック処理 } }); Btn1.setBounds(50, 50, 50, 50); Add(btn1);

AWTのイベント処理 イベントリスナー登録方法② ②イベントリスナーがインターフェイスとして定義されているので、このイベントリスナーのインターフェイスを実装(implements)する方法 ②はコンポーネントの数が多い時に使われる。 実装(implements)する方法の手順 [1]イベント・リスナーのインターフェイスを実装(implements)する。 [2]コンポーネントにイベント・リスナーを登録する。 [3]イベント・メソッドで、イベントが発生したときの処理をする。 コンポーネント数複数のときは、 if(イベント・オブジェクト.getSource() == コンポーネントのオブジェクト) で各コンポーネントを識別。

例2 public class eg2 extends Applet implements ActionListener { eg2() setLayout(null); Button btn1 = new Button("ボタン1");       btn1.setBounds(50, 50, 50, 50); btn1.addActionListener(this); Button btn2 = new Button(“ボタン2”);       btn2.setBounds(50, 150, 50, 50); btn2.addActionListener(this); add(btn1); add(btn2);

public void actionPerformed(ActionEvent e) { if(e.getSource() == btn1) ボタン1の処理 } else ボタン2の処理 }    }

import java.applet.Applet; import java.awt.Button; 例3. 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"); ボタンオブジェクト生成 ボタン押下時、イベント取得準備 ボタン押下時処理

アプレットでのスレッドの使用 Javaは複数のスレッドを起動させることができ ます。スレッドはアプレットの中でも使用できます。 メインとは関係なく、自立的に動作するアニメーシ ョンなどを作ることができます。 1.アプレットでは表示はpaint()が行うので、これと関連させます。 2.別スレッドでは変数の値の変化などを与えます。 3.表示はpaint()に任せます。 例 AppletTest08参照。