Javaのアプレットについて質問です。
星型の図形をアプレットビューワ上でマウスを押した場所に移動させたいのですが・・・
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.Polygon;
public class Enshu1_5 extends Applet implements MouseListener
{
int px []={100,80,10,70,40,100,160,130,190,120};
int py []={10,75,75,113,190,140,190,113,75,75};
private Polygon poly = new Polygon(px,py,10 );
public void init()
{
addMouseListener(this);
}
public void mouseClicked(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void paint(Graphics g)
{
g.setColor(Color.red);
g.fillPolygon(poly);
g.setFont(new Font("serif",Font.BOLD,24));
g.drawString("Star",100,200);
}
}
こんな感じでつくってみたのですが現在位置とクリック位置との差分割り出し方をpublic void mouseClicked(MouseEvent e)の所に書きたいのですが普通にpoly.translate( e.getX(), e.getY() );をしてしまうと原点からの移動になってしまうため、フィールド上にint x=0,y=0をつくりmouseClickedのところで
if(e.getX()>x&&e.getY()>y)
{
int dx=e.getX()-x;
int dy=e.getY()-y;
x=dx;
y=dy;
poly.translate(dx,dy);
repaint();
}の様な感じで考えられる条件を条件分岐していこうと思ったのですがどうもうまくいきませんしかなりかさばったものになってしまうと思います。何かいい方法はないでしょうか?
教えて下さい><
お礼
addMouseMotionListener()を追加したところ うまくマウスの座標をリアルタイムに取得できるようになりました ありがとうございました。