Presentation is loading. Please wait.

Presentation is loading. Please wait.

JAVA GUIプログラミング 第3回 イベント処理① マウスイベント.

Similar presentations


Presentation on theme: "JAVA GUIプログラミング 第3回 イベント処理① マウスイベント."— Presentation transcript:

1 JAVA GUIプログラミング 第3回 イベント処理① マウスイベント

2 マウスのイベント処理 今日はマウスが画面に入ったり、出たり、クリックしたり、放したりしたときの処理を作るプログラムを作成していきます。

3 マウスのイベント 基本的に2種類あります。 ① mouseListener ② mouseMotionListener

4 ①mouseListener マウスが画面に入ったとき マウスが画面から出たとき マウスをクリックしたとき マウスを押したとき
 ①mouseListener マウスが画面に入ったとき マウスが画面から出たとき マウスをクリックしたとき マウスを押したとき マウスを放したとき この5種類のイベントを処理します

5 サンプル① import javax.swing.*; import java.awt.*;
import java.awt.event.*; public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); }

6 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); }

7 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint(); }
public void mousePressed(MouseEvent me) flag=2; public void mouseReleased(MouseEvent me) flag=3;

8 サンプル① public void mouseExited(MouseEvent me) { flag=4; repaint(); }
public void mouseEntered(MouseEvent me) flag=5;

9 解説 サンプル① import javax.swing.*; import java.awt.*;
解説 サンプル① import javax.swing.*; import java.awt.*; 前回ではimportするのはこの2つでした。 今回はイベントを扱うので、さらに次をimportします。 import java.awt.event.*;

10 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); }

11 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); } 今回はMouseListenerを使うので このように書きます。

12 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); } flagという整数型変数を用意します。 ここで宣言した変数は グローバル変数といってプログラムのどこでも 使うことができます。

13 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); } ここは初期設定の部分ですね

14 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); } flagを初めは0にしておきます

15 解説 サンプル① public class ex4 extends JApplet implements MouseListener {
解説 サンプル① public class ex4 extends JApplet implements MouseListener { int flag; public void init() { flag=0; getContentPane().addMouseListener(this); } ここはちょっと難しいですね・・ MouseListenerを使える状態にします。

16 解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); }

17 解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); } ここは絵を描く部分ですね

18 解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); } まず色を白に設定し、 画面を白く塗りつぶします。

19 解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); } 色を黒に設定します

20 解説 サンプル① public void paint(Graphics g) { drawstringとは文字を描く命令です。
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); } drawstringとは文字を描く命令です。 ここでは(100,100)から 押したでしょ という文字を描きます。

21 解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white);
解説 サンプル① public void paint(Graphics g) { g.setColor(Color.white); g.fillRect(0,0,500,500); g.setColor(Color.black); if (flag==1) g.drawString("押したでしょ",100,100); if (flag==2) g.drawString("押しっぱなし",100,100); if (flag==3) g.drawString("放したでしょ",100,100); if (flag==4) g.drawString("出たでしょ",100,100); if (flag==5) g.drawString("入ったでしょ",100,100); } Flagの場合に応じて文字を出します。 もし、flagが3であれば、「放したでしょ」という 文字を描きます。

22 解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint();
解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint(); } この部分はマウスがクリックされたら コンピュータが自動的に実行します。

23 解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint();
解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint(); } flagを1にします。

24 解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint();
解説 サンプル① public void mouseClicked(MouseEvent me) { flag=1; repaint(); } paintの部分をもう一度実行する命令です。

25 解説 サンプル① public void mousePressed(MouseEvent me) { flag=2; repaint();
解説 サンプル① public void mousePressed(MouseEvent me) { flag=2; repaint(); } マウスが押されたときに自動的に呼び出されます。

26 解説 サンプル① public void mouseReleased(MouseEvent me) { flag=3; repaint();
解説 サンプル① public void mouseReleased(MouseEvent me) { flag=3; repaint(); } マウスのボタンが放されたときに自動的に呼び出されます。

27 解説 サンプル① public void mouseExited(MouseEvent me) { flag=4; repaint(); }
解説 サンプル① public void mouseExited(MouseEvent me) { flag=4; repaint(); } マウスが画面の外に出たときに自動的に呼び出されます。

28 解説 サンプル① public void mouseEntered(MouseEvent me) { flag=5; repaint();
解説 サンプル① public void mouseEntered(MouseEvent me) { flag=5; repaint(); } マウスが画面の中に入ったときに自動的に呼び出されます。

29 サンプル①のまとめ マウスが画面に入ると・・ Public void mouseEntered・・が呼び出され・・ flagが5になり・・
Public void paint・・の部分が呼び出され・・ 「入ったでしょ」が描かれる。

30 どうですか? MouseListenerを使った例はここまでです。 次はMouseMotionListenerを説明します。

31 ②mouseMotionListener
 ②mouseMotionListener マウスが動いたとき マウスをドラッグしたとき この2つのイベントを処理します

32 サンプル② import javax.swing.*; import java.awt.*;
import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); }

33 サンプル② public void paint(Graphics g) { g.fillOval(x-5,y-5,10,10); }
public void mouseMoved(MouseEvent me) public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint();

34 解説 サンプル② import javax.swing.*; import java.awt.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); }

35 解説 サンプル② サンプル①と同じようにimportします import javax.swing.*; import java.awt.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } サンプル①と同じようにimportします

36 解説 サンプル② 今回はMouseMotionListenerをインプリメントします import javax.swing.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } 今回はMouseMotionListenerをインプリメントします

37 解説 サンプル② 整数型の変数x、yを用意します。 グローバル変数です。 import javax.swing.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } 整数型の変数x、yを用意します。 グローバル変数です。

38 解説 サンプル② 初期設定の部分ですね import javax.swing.*; import java.awt.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } 初期設定の部分ですね

39 解説 サンプル② とりあえず X=-100 Y=-100にしておきます import javax.swing.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } とりあえず X=-100 Y=-100にしておきます

40 解説 サンプル② 今回はここでmouseMotionListener を使えるようにしています。 import javax.swing.*;
解説 サンプル② import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ex5 extends JApplet implements MouseMotionListener { int x,y; public void init() { x=-100;y=-100; getContentPane().addMouseMotionListener(this); } 今回はここでmouseMotionListener を使えるようにしています。

41 解説 サンプル② public void paint(Graphics g) { g.fillOval(x-5,y-5,10,10);
解説 サンプル② public void paint(Graphics g) { g.fillOval(x-5,y-5,10,10); } この部分では(x、y)を中心に 半径5の円を塗りつぶしてますね

42 解説 サンプル② public void mouseMoved(MouseEvent me) { }
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint();

43 解説 サンプル② public void mouseMoved(MouseEvent me) ここは、マウスが動いたときに
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint(); ここは、マウスが動いたときに 自動的に呼び出されます。 今回は中に何も書いていません

44 解説 サンプル② public void mouseMoved(MouseEvent me) ここは、マウスがドラッグされたときに
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint(); ここは、マウスがドラッグされたときに 自動的に呼び出されます。

45 解説 サンプル② public void mouseMoved(MouseEvent me) 現在のマウスのx座標を変数xに代入します。 {
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint(); 現在のマウスのx座標を変数xに代入します。

46 解説 サンプル② public void mouseMoved(MouseEvent me) 現在のマウスのy座標を変数yに代入します {
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint(); 現在のマウスのy座標を変数yに代入します

47 解説 サンプル② public void mouseMoved(MouseEvent me) Paintの部分を もう一度呼び出す。 { }
解説 サンプル② public void mouseMoved(MouseEvent me) { } public void mouseDragged(MouseEvent me) x=me.getX(); y=me.getY(); repaint(); Paintの部分を もう一度呼び出す。

48 まとめ マウスをドラッグすると・・ MouseDragged・・の部分が呼び出され・・ 変数x、yに現在のマウスの座標が代入され・・
ペイントの部分が呼び出され・・ 塗りつぶした円が描かれる・・

49 今日はここまで マウスのイベントを使う方法を演習しました。 いろいろ改造してプログラムを作ってみてください。


Download ppt "JAVA GUIプログラミング 第3回 イベント処理① マウスイベント."

Similar presentations


Ads by Google