0

Javaを使用してスクリーンレコーダーソフトウェアを作成しています。ほぼ80%の作業が完了しました。ここで、Java を使用してマウス クリックの視覚的マーカーを作成する必要があります。マウスがクリックされた場所を再生ビデオで見ることができるように。どうやってやるの?

誰かコード例を持っていますか?

4

1 に答える 1

0

とてもシンプルです。MouseListener の getX() および getY() メソッドを使用して、ユーザーがマウスをクリックしたポイントを読み取ります。ここで、java.awt.Graphics クラスの drawOval() メソッドで楕円を描画します。問題を解決できると確信している次のコードを試してください。

import java.awt.*;   
import java.awt.event.*;

// no window closing code
public class MouseXY extends Frame implements MouseListener, MouseMotionListener  
{
          int x , y;
          String str =" ";
          public MouseXY()  
          {
                 setSize(500, 500);
                 setVisible(true); 
                 addMouseListener(this);                // register both the listeners with frame
                 addMouseMotionListener(this);                              
           }                                            // override the 5 abstract methods of ML
           public void mouseEntered(MouseEvent e)   
           { 
                  setBackground(Color.green);
                  x = e.getX();
                  y = e.getY();
                  str ="Mouse Entered";
                  repaint();
           }                                                                   
           public void mouseExited(MouseEvent e)    
           {
                  setBackground(Color.red);
                  x = e.getX();
                  y = e.getY();
                  str ="Mouse Exited";
                  repaint();
           }
           public void mouseClicked(MouseEvent e)
           {
                  setBackground(Color.gray);
                  x = e.getX();
                  y = e.getY();
                  str ="Mouse Clicked";
                  repaint();
           }
           public void mouseReleased(MouseEvent e)   
           {
                  setBackground(Color.blue);
                  x = e.getX();
                  y = e.getY();
                  str ="Mouse Released";
                  repaint();
           }
           public void mousePressed(MouseEvent e)   
           {
               setBackground(Color.lightGray);
               x = e.getX();
               y = e.getY();
               str ="Mouse pressed";
               repaint();
          }                                                       // override the 2 abstract methods of MML
          public void mouseDragged(MouseEvent e)
          {
               setBackground(Color.magenta);
               x = e.getX(); 
               y = e.getY();
               str ="Mouse Dragged";
               repaint();
          }
          public void mouseMoved(MouseEvent e)  
          {
               setBackground(Color.yellow);
               x = e.getX();
               y = e.getY();
               str = "Mouse Moved";
               repaint();
          }
          public void paint(Graphics g)  
          {
               g.setColor(Color.blue);
               g.fillOval(x , y , 10 , 10);
               g.drawString(x +", "+ y , x , y);
               g.drawString(str , x , y -10);             // to draw the string above y coordinate
    }                              
    public static void main(String args[ ])   
    {
               new MouseXY();
    }

}

于 2013-02-20T12:55:23.877 に答える