簡體   English   中英

通過MouseMove事件進行的光標更改不起作用

[英]Cursor Change by MouseMove Event doesn't work

我的鼠標光標有問題。 我使用this.setCursor()在JPanel的MouseMotion事件中設置了它,但沒有改變。 例如,從我的桌面上的“窗口”退出並回到內部后,光標將通過任何動作進行更改。

JPanel的鼠標事件的代碼是這樣的:

public void mouseMoved(MouseEvent e) {
    this.requestFocusInWindow();
    this.requestFocus();


    this.cL.doMouseMoved(e);
}

doMouseMoved方法的代碼是這樣的:

public void doMouseMoved(MouseEvent e) {
    this.lastMouseEvent = e;
    this.sList.setCurrentElements(e.getPoint());
    this.setMovedCursor(e);

}

最后,這是setMovedCursor方法的代碼:

public void setMovedCursor(MouseEvent e) {
 java.awt.Cursor cu = new java.awt.Cursor(java.awt.Cursor.SW_RESIZE_CURSOR);
 view.setCursor(cu);
}

(我知道這不是最好的方法)

我希望每個人都能幫助我。 抱歉任何錯誤,這是我在stackoverflow的第一篇文章。

if (sList.getCurrentShapeType() == "rec") {

不知道它是否可以解決您的問題,但不要使用“ ==”來比較對象。

相反,您應該使用equals(...)方法。

if ("rec".equals(sList.getCurrentShapeType()) {

注意:我更改了測試順序,因此您不必擔心getCurrentShapeType()方法返回空值。

else if (k.getBorderByPoint(e.getPoint()) == 4)

另外,我不知道您的getBorderByPoint()方法做什么,但是為什么要將它與整數值進行比較。 我們不知道“ 4”是什么意思。 不要使用“幻數”。而是創建諸如CURSOR_NORTH之類的變量。或者更好的是為什么不直接從該方法返回游標,這樣就不必再次檢查該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM