2013-07-28 43 views
0

我正在寫在Java程序具有使用戶能夠選擇並然後旋轉或基於鼠標的移動伸展圖形對象。我即將開始工作,但我遇到的問題是想辦法調整形狀,使其隨鼠標移動而自然工作。檢測垂直/水平的鼠標移動用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。有沒有人有更好的方法來檢測鼠標移動的方向?

回答

0

我建議存儲原始鼠標位置(即,其位置,當用戶是第一能夠調整的形狀),然後通過直接將差修改當前位置和原始位置之間的形狀的寬度,或通過縮放差異然後添加它。

+0

謝謝mproncace – Polaris

+0

@Polaris絕對。 – caseif