■作成するプログラムの概要
・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();
}
}
■実行結果
▼画面クリック時(ボタン押下&離す)
マウスのボタンが押されました
マウスのボタンが離れました
▼画面内にマウスが入った場合
マウスが画面内に入りました
▼画面外にマウスが出た場合
マウスが画面外に出ました
コメント