Download presentation
Presentation is loading. Please wait.
1
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
2
イベント処理 イベント処理 これまでの処理は、データ表示など。 マウスクリックなどの場合、何らかの処理が起 こります。
(1)マウスクリックの信号が発生 (2)システムが「信号」を受け取ると、メソッドが実行される。 この「信号」をイベントという。 操作→イベント発生、イベント判断→メソッド実行 これらを「イベント処理」という。
3
イベント処理 1.マウスのイベント(表示) mouseEnterd・・・マウスが入ってきたとき
mouseExited・・・マウスが出て行ったとき mousePressed・・・マウスボタン押下時 mouseReleased・・・マウスボタン放したとき 2.イベントリスナの登録 イベント処理ができるようになるにはイベントリ スナの登録が必要 addMouseListener(this); ーthisをマウスのイベントリスナとして登録。 thisは「このクラスそのもの」を表示
4
イベント処理 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(); }
5
イベント処理 (MouseEvent e)は、マウスクリックされたとき 収集されたイベント情報。
2.mouseClicked()呼び出し→ MouseEventオブジェクト引数渡し。 mouseClicked()はマウスクリック座標などを知ることができる。
6
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インターフェイスの実装 イベント取得準備
7
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"; マウスのイベント によるメソッド
8
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";
9
AWT AWTにつきまして 1.AWT (Abstract Windowing Tools)は、Java で GUIアプリケーションを作成するためのクラスライブラリです。現在では Swing もよく利用されていますが、Swing よりも軽い GUIアプリケーションを作成することが可能です。 2. AWTにはボタン、ラベル、数種類のコンポーネントが用意されています。ラベル、ボタンにはGIF、JPEGなどのイメージが表示されません。
10
AWT AWTコンポーネント 「java.awt」、 「java.awt.event.*」をインポート
ントに関するパッケージで、両者は異なる性質 なので別々にインポートする必要がある。 主なコンポーネントは次頁。
11
AWTコンポーネント クラス 機能 Button ボタン Label ラベル TextField TextArea テキスト・エリア
テキスト・フィールド(単一行) TextArea テキスト・エリア Checkbox チェック・ボックス Choice 選択用ボックス Canvas キャンバス List リスト・ボックス Scrollbar スクロール・バー
12
ボタン( Button ) 3.ボタンオブジェクト生成(コンストラクタ) ボタン配置手順 ①オブジェクトの生成
Button btn1 = new Button([string label[]); ②配置 add(btn1); 別法1. Button btn1; btn1 = new Button(“ボタン1”); 別法2. add(btn1 = new Button(“ボタン1”));
13
ボタン( Button ) 重要なメソッドは次の通り イベント処理 キャプションの設定
void addActionListener(new ActionListener) 複数個ある場合の識別方法 イベントのオブジェクト名.getSource() キャプションの設定 void setLabel(String Label) キャプションの取得 String getLabel ()
14
ラベル(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()
15
テキスト・フィールド(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()
16
AWTのイベント処理 ①「AWTコンポーネントのイベント」 ②「マウスとキーボードに対するイベント」 ①の詳細
イベント発生「ボタン」コンポーネントを、「イベント・ソー ス」という。このイベント・ソースに対して、「クリック」、 「ダブル・クリック」、「ドラッグ」などのイベントを発生さ せる。 実際のイベント処理を行うには以下の手順を踏みます。
17
AWTのイベント処理 1.import java.awt.event.*; 2.イベントソースをイベントリスナーに登録
3.イベントリスナーはボタンのとき、「ActionListner」、コンボ・ボックスは「ItemListner」となる。 4.実際のイベント処理は「イベント処理メソッド」で実行。それぞれのイベントに対応したメソッドはイベント・リスナーに用意されている。 5.イベント発生後、必要イベント処理が実行される。 ボタンのイベント処理はメソッドは「actionPerformed」
18
AWTのイベント処理 AWTの主なコンポーネントに必要なものは次の通り
イベント・リスナー イベント名 イベント・メソッド Button、TextFied、List ActionListener ActionEvent actionPerformed Checkbox, Choice ItemListner ItemEvent itemStateChanged Scrollbar AdjustmentListener AdjustmentEvent adjustementValueChanged この他の「Label」「TextArea」「Canvas」のイベント処理 は設定不可。
19
AWTのイベント処理 イベントリスナー登録方法① 例. Button btn1 = new Button("ボタン1 ");
Btn1.addActionListner( new ActionListener() { public void actionperformer(ActionEvent e) ボタン1クリック処理 } }); Btn1.setBounds(50, 50, 50, 50); Add(btn1);
20
AWTのイベント処理 イベントリスナー登録方法②
②イベントリスナーがインターフェイスとして定義されているので、このイベントリスナーのインターフェイスを実装(implements)する方法 ②はコンポーネントの数が多い時に使われる。 実装(implements)する方法の手順 [1]イベント・リスナーのインターフェイスを実装(implements)する。 [2]コンポーネントにイベント・リスナーを登録する。 [3]イベント・メソッドで、イベントが発生したときの処理をする。 コンポーネント数複数のときは、 if(イベント・オブジェクト.getSource() == コンポーネントのオブジェクト) で各コンポーネントを識別。
21
例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);
22
public void actionPerformed(ActionEvent e)
{ if(e.getSource() == btn1) ボタン1の処理 } else ボタン2の処理 } }
23
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"); ボタンオブジェクト生成 ボタン押下時、イベント取得準備 ボタン押下時処理
24
アプレットでのスレッドの使用 Javaは複数のスレッドを起動させることができ ます。スレッドはアプレットの中でも使用できます。
メインとは関係なく、自立的に動作するアニメーシ ョンなどを作ることができます。 1.アプレットでは表示はpaint()が行うので、これと関連させます。 2.別スレッドでは変数の値の変化などを与えます。 3.表示はpaint()に任せます。 例 AppletTest08参照。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.