• ベストアンサー

動画の座標値をマウスクリックで得ることができますか?

Java初心者です。 マウスのイベント処理(X,Y座標を得る)と動画(ネットワークカメラの動画)をうまく組み合わせて、その動画の座標値を得る方法を教えてください。とりあえず静止画の座標値を得る方法でも結構です。 Javaに詳しい方、是非ご教授お願い致しますm(__)m

  • Java
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • mkim
  • ベストアンサー率67% (25/37)
回答No.2

APIより ----------------------------------------------------------- コンポーネント上の「関連する」マウスイベント (プレス、リリース、クリック、コンポーネントへの出入り) を受け取るためのリスナーインタフェースです。マウスの移動およびドラッグを追跡するには、MouseMotionListener を使用します。 マウスイベントの処理に関連するクラスは、このインタフェースに含まれているすべてのメソッドを定義してこのインタフェースを実装するか、関連するメソッドだけをオーバーライドして abstract クラス MouseAdapter を拡張します。 そのようなクラスから作成されたリスナーオブジェクトは、コンポーネントの addMouseListener メソッドを使ってコンポーネントに登録されます。マウスイベントは、マウスを押したり、離したり、クリック (押してから離す) したときに生成されます。また、マウスカーソルがコンポーネントに入ったり、コンポーネントから出たりしたときにも、マウスイベントが生成されます。マウスイベントが発生すると、リスナーオブジェクト内の関連するメソッドが呼び出され、そのメソッドに MouseEvent が渡されます。 -------------------------------------------------------------- とあります。 要するに、このMouseListenerを介して、マウスが押されたと言う イベントを受け取ります。 このインターフェイスには5つのメソッドが用意されているので それを実装してもよいですし、今回ならmousePressed()だけオーバーライド してそれをabstract クラス としてもよいです。 まぁ、簡単な話しがMouseListenerをimplements しておけば、 マウスが押された時に、mousePressed()の中の処理が走るわけです。 ちょっと、説明が下手でわかりにくかったら、また質問してください。

spirit-of-honda
質問者

お礼

ご指導ありがとうございました(^^) 他にいろいろ疑問は残りましたが、これからいろいろ頑張ってみようと思います。 また、機会があれば回答宜しくお願い致します。 本当にありがとうございました! では(^o^)/~~~

spirit-of-honda
質問者

補足

こんにちは! いつもお世話になってます(^^) mkimさんのおかげでマウスでブラウザ(IE5.0)上の灰色の部分の座標値を得ることはできました(^o^) しかし、その灰色の部分に画像を貼り付け、その画像の座標値を得たいのですが、画像をうまく貼り付けることができません。 javaファイルのと同じディレクトリにあるローカルな画像は貼り付けて座標値を得ることができたのですが、インターネット上にある画像を貼り付けることができませんでした。 最終的にはライブカメラの画像を貼り付けようと考えているので、これができないと先に進むことができません。 もしご存知でしたら教えてください(^^) わかりにくい質問でごめんなさいm(__)m 一応、うまくいかなかったjavaファイルを載せておきます。 // My_Image03.java import java.awt.Graphics; import java.applet.Applet; import java.awt.Image; public class My_Image03 extends Applet { Image im; public void init() { im = getImage(getDocumentBase(), "http://www.honda.co.jp/image/b_hmark.gif"); } public void paint(Graphics g) { g.drawImage(im, 10, 10, this); } } 構文が間違っているのでしょうか? 回答、お待ちしております(^o^)丿

その他の回答 (1)

  • mkim
  • ベストアンサー率67% (25/37)
回答No.1

java.awt.event.MouseEvent のクラスを見てみよう。 getPoint()なんて言うメソッドがあるから、それを使うといいかも。。 返り値は、Point型だからjava.awt.Pointも見てみよう。 MouseListenerインターフェイスも見てみようね。 public class hogehoge extends Applet implements MouseListener { Point point; int x; int y; public void mousePressed(MouseEvent me) { point = me.getPoint(); x = point.x; y = point.y; } 以下省略 みたいな感じでいけると思うよ。 あとは、色々自分で考えてがんばってください。 ではでは~(^^)

spirit-of-honda
質問者

補足

回答ありがとうございます! 返事送れて申し訳ありませんでした。 「MouseListenerインターフェイス」についてよくわからなかったので、もう少し解説していただけないでしょうか? 宜しくお願い致します(^^)

関連するQ&A

  • java リアルタイムでマウスの座標を取得したい

    マウスのリアルタイム座標を取得したいのですが、 以下のソースを作りました。 しかし、リアルタイムどころか、マウスをクリックしても座標が取得できません どこを修正すればいいのでしょうか? import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.event.MouseEvent; import java.net.URL; import java.awt.Image; /*<applet code="applet001" width="640" height="480"></applet>*/ public class applet001 extends Applet implements MouseListener, MouseMotionListener { Dimension dim; int mouse_x, mouse_y; //アプレットの初期化時呼び出される public void init() { dim = getSize(); addMouseListener( this ); } public void update(Graphics g) //オーバーライドして最低限のことだけをする { paint(g); } public void paint(Graphics g) { g.drawString( "マウス:" + mouse_x + "," + mouse_y, 60, 120 ); g.fillOval(mouse_x,mouse_y,30,30); } // マウスの処理 public void mousePressed( MouseEvent e ) { mouse_x = e.getX(); mouse_y = e.getY(); } public void mouseClicked( MouseEvent e ) {} public void mouseReleased( MouseEvent e ) {} public void mouseEntered( MouseEvent e ) {} public void mouseDragged( MouseEvent e ) {} // public void mouseExited( MouseEvent e ) {} // public void mouseMoved( MouseEvent e ) { mouse_x = e.getX(); mouse_y = e.getY(); repaint(); } }

    • ベストアンサー
    • Java
  • Javaのマウスイベントについて

    閲覧ありがとうございます、Java初心者です。 現在Javaの勉強をしており、マウスの座標を取得しその座標に座標を描画 するプログラムを作っているのですが、どうしても上手くいきません・・・以下が ソースです↓ import java.awt.*; import java.awt.event.*; public class test01 extends Frame { int x, y; public static void main(String[] args) { new test01(); } test01() { super("FrameTest"); //フレーム名 setSize(300, 300); //サイズを設定 MyCanvas mc = new MyCanvas(); //グラフィック用メソッドをインスタンス化 add(mc); //フレームに描画 addMouseMotionListener(new getMouse_position()); System.out.println("(" + x + "," + y + ")"); setVisible(true); //フレームを表示 addWindowListener(new Close()); //クローズ処理 } /*** グラフィック描画用クラス ***/ public class MyCanvas extends Canvas { public void paint(Graphics g) { g.drawString("(" + x+ "," + y + ")", x, y); } } /*** マウス操作用クラス ***/ public class getMouse_position extends MouseAdapter { public void mouseMoved(MouseEvent ev) { x = getX(); //マウスのx座標を取得 y = getY(); //マウスのy座標を取得 repaint(); } } } /*** クローズ用クラス ***/ class Close extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } これを実行すると、ずっと(0, 0)のままでマウスの座標を読み取ってくれません・・・何故なんで でしょうか?

    • ベストアンサー
    • Java
  • vb2005 マウス座標の取り方

    VB2005(Win.Vista) フォームに置いたPictuteBoxで動いているマウスの座標(X,Y)値を知るにはどうするんでしょうか? たぶん同じだと思いますが、マウスボタンダウン時の座標の取り方もいっしょでしょうか? DelphiからいきなりVB2005にきたので、まったくわかりません。 どこか入門用のサイトありましたら、合わせてお願いします。

  • Javascriptでテーブルタグの座標が知りたい(但し、マウスでなく)

    <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>JavaScriptテスト</title> <script type="text/javascript"> <!-- document.onmousedown = msDown //----------------------------------------------------------------------------- // マウスで座標を取得する //----------------------------------------------------------------------------- function msDown(){ var x = event.x; var y = event.y; alert('x=[' + x + '] y=[' + y + ']'); } // --> </script> </head> <body> テーブルタグの<TD>で左上側の画面上の位置の座標位置を取得したいです。 offsetLeftやoffsetTopでは、例えばテーブルタグの上側に<p>がある場合と無い場合でも同じ値でした。 正しく取得する方法はありますか? <hr> <table cellspacing="0" cellpadding="2" border="1" bgcolor="black"> <tbody> <tr> <td><img src="" width="100" height="100"></td> <td bgcolor="red">この赤のエリアの左上の座標が知りたい(マウスイベントで調べられるが、それを使わずに調べたい) </td> </tr> <tr> <td>456</td> <td><img src="" width="50" hright="50"></td> </tr> </tbody> </table> </body> </html>

  • スクリーン座標上でのmouse_eventでのマウスの動き

    御世話様です。 mouse_eventコマンドを使って、スクリーン座標のドラックする範囲を選択しているのですが、選択した範囲が座標で指定した部分より広くなってしまいます。 プログラムは以下の通りです。原因わかる方がいれば ご教授ください。よろしくお願い致します。 (開発環境 Windows2000 Visual Basic6.0) Private Sub Command1_Click() 'ドラッグの自動化 Dim x As Long Dim y As Long 'zahyoux(1.0):選択範囲右下のx座標 'zahyoux(0.0):選択範囲左上のx座標 'zahyoux(1.1):選択範囲右下のy座標 'zahyoux(0.1):選択範囲左上のy座標 'ドラッグする範囲(横) x = zahyoux(1, 0) - zahyoux(0, 0) 'ドラッグする範囲(縦) y = zahyoux(1, 1) - zahyoux(0, 1) 'ドラッグする始点にマウスを移動 Call SetCursorPos(zahyoux(0, 0), zahyoux(0, 1)) 'マウスの左ボタンをクリック Call mouse_event(MOUSEEVENTF_LEFTDOWN,0 ,0, 0, 0) '左ボタンを押したまま移動 Call mouse_event(MOUSE_MOVED, ax, ay, 0, 0) '左ボタンを上げる Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) End Sub

  • アプレットでマウスイベントが出ない

    クリックしても反応しません。 また、マウスイベントが発生したときに飛ぶメソッドにSystem.out.printlnを入れるとException in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pDataが出ることがあります。 import java.applet.Applet; import java.awt.Graphics; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class NewJApplet extends javax.swing.JApplet implements MouseListener{ int x = 10; int y = 10; public void init() { x = 50; y = 50; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed( MouseEvent e ){ x = e.getX(); // マウスがクリックされた位置のx座標を取得する y = e.getY(); // マウスがクリックされた位置のy座標を取得する repaint(); // アプレットの再描画を指示する } public void mouseReleased(MouseEvent e) { } public void paint(Graphics g) { g.fillOval(x,y,10,10); } } 使ってるのは jre1.6.0_01 NetBeans 5.5です

    • ベストアンサー
    • Java
  • 動画再生中に静止画を撮れるビデオカメラはありますか?

    素人質問ですみません。 よくビデオカメラで静止画500万画素とか宣伝していますが、それはデジカメとして静止画像を撮った時のことだと思います。動画として撮ったものの再生を見ながらここだ!と思ったところでカメラシャッターを押して質の高い静止画を作れる機種はありますでしょうか?あるいは動画再生中に静止させ、それをきれいな静止画として処理できるとか?また、ビデオカメラ本体の操作では無理なら、何かソフトを使えばできるということは可能でしょうか?カメラの決定的瞬間をシャッターチャンスの一瞬でとらえるのではなく、動画として撮っておき、あとで好きな瞬間を選んで静止画として作れればいいなと思っていたので、お聞きしている次第です。

  • プログラムでマウスを指定した座標に移動させる方法

    環境 windows xp jdk 1.6 awt.Panelクラス上でマウスイベントを取得しています。 マウスが特定の領域にきた場合、プログラムで強制的に、指定した別の座標(Javaアプリ上の座標)にマウスを移動する事は、可能でしょうか? 可能な場合どのようにコーディングすればよろしいでしょうか? ご教示よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 任意の座標をクリックさせるには

    任意の座標をクリックさせるには JavaScriptで、Webページ上の適当な場所(座標)を クリックさせられますか。 テキストボックスでもリンクでも画像でもない ただ x=500 Y=500 のポイントをクリック、といった具合に 処理が可能か教えてください。

  • 携帯 動画

    私はEMOBILEの「STREAM X GL07S」を使ってます。 元から携帯にあったカメラで動画を撮るにはどうすればいいのでしょう? どうしても、静止画しか撮れません。

専門家に質問してみよう