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

Slides:



Advertisements
Similar presentations
Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
Advertisements

ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
社会人学習講座 「Javaプログラミング概論」
情報処理演習 (9)グラフィックス システム科学領域 日浦 慎作.
GridLayout オブジェクト(省略)
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
JAVA GUIプログラミング 第6回 TextFieldとLabel.
数値計算及び実習 第3回 プログラミングの基礎(1).
オブジェクト指向言語 第12回 アプレット.
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アプレット (Applet)について.
1.Java 概要 2.簡単なアプレット 3.動画を表示するアプレット 4.アプレットの改良 5.開発環境の利用(データベース)
Iアプリプログラミング その1  鳥居秀徳.
Javaでゲーム  山本拓弥.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
JAVA.
JavaServlet&JSP入門 01K0018 中村太一.
 Applet アプレット ◇長い長いアプレット講座◇.
C言語講座 第4回 ポインタ.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
第14回独習Javaゼミ セクション1~3 発表者 直江 宗紀.
アプレット プログラミング 第10回 アプレット プログラミング第10回.
プログラミング演習3 第2回 GUIの復習.
Unity, C# 移動するモデルの位置を 指定した位置へ自動修正
基礎プログラミング演習 第10回.
JAVA GUIプログラミング 第2回 グラフィックスを使っての演習 グラフを描こう.
アルゴリズムとデータ構造演習(6月24日) グラフィックス、その2 テキストフィールドで入力する チェックボックスで1つ以上指定する
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
プログラミング演習3 第3回 ミニプロジェクト.
電界中の電子の運動 シミュレータ作成 精密工学科プログラミング基礎 資料.
TCanvas BCB:TCanvasクラスでグラフィックを扱う。 TFormなどもプロパティとして持っている。
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習3 第2回 GUIの復習.
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
Java/Swingについて (3) 2005年10月19日 海谷 治彦.
第6回:ラケットを動かそう! (キーボードによる物体の操作)
JAVA入門後期③ JAVAのGUI (JavaのGUI基本構造、いろいろなアプレット)
JAVA入門後期⑥ JAVAのAWTの基本構造 (レイアウトマネージャー、 ウインドウ型アプリケーション)
プログラミング基礎a 第10回 Javaによる図形処理入門(2) GUIの使い方
プログラミング基礎a 第12回 Java言語による図形処理入門(3) アニメーション入門
プログラミング基礎a 第11回 Java言語による図形処理入門(3) アニメーション入門
プログラミング入門第6回 ~レゴロボットのプログラミング6~
プロジェクト演習Ⅱ インタラクティブゲーム制作
プログラミングⅠ 平成30年10月22日 森田 彦.
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
オブジェクト プログラミング 第2回 プログラムの基本.
第1章 いよいよプログラミング!! ~文章の表示 printf~
アルゴリズムとプログラミング (Algorithms and Programming)
基礎プログラミング演習 第6回.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
C#プログラミング実習 第3回.
プログラミング入門 電卓を作ろう・パートI!!.
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
ウェブデザイン演習 第6回.
第5回 プログラミングⅡ 第5回
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
標準入出力、変数、演算子、エスケープシーケンス
プログラミング実習(Java) グラフィクス処理とGUIプログラミング 講師:坂口 利裕(横浜市立大学)
第7章 そろそろ int 以外も使ってみよう! ~データ型 double , bool~
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

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

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

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

①mouseListener マウスが画面に入ったとき マウスが画面から出たとき マウスをクリックしたとき マウスを押したとき  ①mouseListener マウスが画面に入ったとき マウスが画面から出たとき マウスをクリックしたとき マウスを押したとき マウスを放したとき この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); }

サンプル① 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); }

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

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

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

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

解説 サンプル① 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を使うので このように書きます。

解説 サンプル① 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という整数型変数を用意します。 ここで宣言した変数は グローバル変数といってプログラムのどこでも 使うことができます。

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

解説 サンプル① 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にしておきます

解説 サンプル① 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を使える状態にします。

解説 サンプル① 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); }

解説 サンプル① 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); } ここは絵を描く部分ですね

解説 サンプル① 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); } まず色を白に設定し、 画面を白く塗りつぶします。

解説 サンプル① 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); } 色を黒に設定します

解説 サンプル① 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)から 押したでしょ という文字を描きます。

解説 サンプル① 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であれば、「放したでしょ」という 文字を描きます。

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

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

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

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

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

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

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

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

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

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

サンプル② 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); }

サンプル② 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();

解説 サンプル② 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します 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します

解説 サンプル② 今回は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をインプリメントします

解説 サンプル② 整数型の変数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を用意します。 グローバル変数です。

解説 サンプル② 初期設定の部分ですね 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); } 初期設定の部分ですね

解説 サンプル② とりあえず 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にしておきます

解説 サンプル② 今回はここで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 を使えるようにしています。

解説 サンプル② 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の円を塗りつぶしてますね

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

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

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

解説 サンプル② 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に代入します。

解説 サンプル② 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に代入します

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

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

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