【发布时间】:2013-07-28 02:41:05
【问题描述】:
我正在用 java 编写一个程序,该程序具有用户可以选择然后根据鼠标移动旋转或拉伸的图形对象。我快要开始工作了,但我遇到的问题是想办法让形状调整与鼠标移动自然配合。
我有一个 MouseListener 设置如下:
private class MouseHandler extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
currentClickPoint = e.getPoint();
}
}
MouseMotionListener 设置如下:
private class MouseMotionHandler extends MouseMotionAdapter
{
public void mouseDragged(MouseEvent e)
{
objectRotateAngle = currentClickPoint.getY() - e.getY();
objectWidth += currentClickPoint.getX() - e.getX();
}
}
显然,这是一个简化版本,但问题是我希望鼠标向右移动时宽度增加,鼠标向左移动时宽度减小,以及旋转角度增加/减少基于垂直鼠标移动。现在,宽度不会开始减小,直到您通过 currentClickPoint 的 X 位置向左,反之亦然。基于鼠标 Y 移动进行旋转的问题是,每次您开始向上移动鼠标进行旋转时,角度都会重新设置为 0。
程序需要无缝响应方向的变化,而不是在调整开始时将宽度或角度设置为 0。有没有人为此目的检测鼠标移动方向的更好方法?
【问题讨论】:
标签: java awt mouseevent mouselistener