簡體   English   中英

是否有NO MOTION鼠標監聽器?

[英]is there a NO MOTION mouse listener?

我有一個地圖小程序,我有一個跟隨鼠標的JLabel,只要鼠標越過一個城市,JLable就會顯示城市名稱和人口。

我使用mouseMotionListener的MouseMoved方法,但我希望只有當鼠標在城市上方停留幾秒鍾時標簽才會存在。

我不知道是不是因為我現在一直在研究這個代碼,但我似乎無法想到使用MouseMoved方法解決這個問題,我嘗試使用計時器,但這對我沒用(mayb我只是做錯了因為我的大腦燒壞了)

那鼠標是否有老鼠聽力? 或者你有什么建議嗎?

這或多或少是我得到的

public void mouseMoved(MouseEvent evt) {
   int x = evt.getX();
   int y = evt.getY();
   boolean aboveCity = false;
   mouseover.setBounds(x+20, y-10, 200, 20); //mouseover is a JLabel

   for (int i=0;i<cityCounter;i++){
      if (city[i].containsPoint(x,y){
         name = city[i].getName();
         population = city[i].getPopulation();
         aboveCity = true;
      }
   }
   if(aboveCity){
      mouseover.setText(name + ", " + population);
   }
   else{
      mouseover.setText("");
   }
}

使用Java javax.swing.Timer。 每次鼠標移動時,重置計時器。 當計時器熄滅時,只要您的計時器設置為,鼠標就會“靜止”。

暫無
暫無

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

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