Download presentation
Presentation is loading. Please wait.
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
今日はここまで マウスのイベントを使う方法を演習しました。 いろいろ改造してプログラムを作ってみてください。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.