[英]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.