【Java】GUIアプリ:マウスで画面をクリック時、画面の座標をメッセージボックスで出力する

■作成するプログラムの概要

・GUI画面を作成し、画面クリック時、クリックした画面の座標(x座標、y座標)をメッセージボックスに出力する。

■マウスイベント処理

今回は、マウスイベント処理のうち、「Mouse Listener」インターフェイスを使用する。

「Mouse Listener」インターフェイスを実装する場合、以下の5つ全てのメソッドを実装する必要がある。

メソッド名説明
mouseClicked(MouseEvent e)クリック時の処理。
mouseEntered(MouseEvent e)マウスがコンポーネント(ここではGUI画面)内に入った時の処理。
mouseExited(MouseEvent e)マウスがコンポーネント(ここではGUI画面)外に出た時の処理。
mousePressed(MouseEvent e)マウスのボタンを押下した時の処理。
mouseReleased(MouseEvent e)マウスのボタンを離した時の処理。

■フローチャート

▼マウス操作クラス

▼GUI画面作成クラス

■プログラム仕様

▼マウス操作クラス

・コンストラクタ

入力処理内容出力
マウス操作リスナーを設定

・マウス操作メソッド

【マウスクリック時の処理】

入力出力内容出力
改行コードを取得する。
マウスがクリックされた座標をメッセージボックスで表示する。【メッセージボックス】
「タイトル」
マウスクリック処理
「内容」
画面がクリックされました
x座標:〇〇
y座標:〇〇
※〇〇は任意の値

【マウスがGUI画面内に入った場合の処理】

入力処理内容出力
マウスが画面内に入ったことを出力する。【コンソール】
マウスが画面内に入りました

【マウスがGUI画面外に出た場合の処理】

入力処理内容出力
マウスが画面外に出たことを出力する。【コンソール】
マウスが画面外に出ました

【マウスのボタン押下時の処理】

入力処理内容出力
マウスのボタンを画面内で押下したことを出力する。【コンソール】
マウスのボタンが押されました

【マウスのボタン押下が離れた時の処理】

入力処理内容出力
画面内で押下したマウスのボタン押下が離れたことを出力する。【コンソール】
マウスのボタンが離れました

■サンプルコード

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

// マウス操作クラス
class MakeMouseClickEvent extends JPanel implements MouseListener{
	
	// コンストラクタ
	public MakeMouseClickEvent(){
		// マウス操作リスナーを設定
		addMouseListener(this);
	}
	
	// マウスクリック時の処理
	public void mouseClicked(MouseEvent e) {
		// 改行を取得
		String br = System.getProperty("line.separator");
		// マウスがクリックされた座標をメッセージボックスで表示
		JOptionPane.showMessageDialog(null,
			"画面がクリックされました" + br 
				+ "x座標:" + e.getX() + br 
				+ "y座標:" + e.getY(),
			"マウスクリック処理",
			JOptionPane.INFORMATION_MESSAGE);
	}
	
	// マウスがGUI画面内に入った場合の処理
	public void mouseEntered(MouseEvent e) {
		System.out.println("マウスが画面内に入りました");
	}
	
	// マウスがGUI画面外に出た場合の処理
	public void mouseExited(MouseEvent e) {
		System.out.println("マウスが画面外に出ました");
	}

	// マウスのボタン押下時の処理
	public void mousePressed(MouseEvent e) {
		System.out.println("マウスのボタンが押されました");
	}
	
	// マウスのボタン押下が離れた時の処理
	public void mouseReleased(MouseEvent e) {
		System.out.println("マウスのボタンが離れました");
	}
}

// GUI画面作成クラス
class GUIScreen extends JFrame{
	// コンストラクタ
	public GUIScreen() {
		// マウス操作を設定
		getContentPane().add(new MakeMouseClickEvent());
		// 画面を閉じた時、プログラムも終了
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// 画面サイズを設定
		setSize(300, 200);
		// 画面を可視化
		setVisible(true);
	}
}

// メイン処理
public class MouseClickEvent{
	public static void main(String[] args) {
		new GUIScreen();
	}	
}

■実行結果

▼画面クリック時(ボタン押下&離す)

マウスのボタンが押されました
マウスのボタンが離れました

▼画面内にマウスが入った場合

マウスが画面内に入りました

▼画面外にマウスが出た場合

マウスが画面外に出ました

コメント