是否有NO MOTION鼠标监听器?

Ale*_*lex 4 java swing

我有一个地图小程序,我有一个跟随鼠标的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("");
   }
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*ung 10

使用Java javax.swing.Timer.每次鼠标移动时,重置计时器.当计时器熄灭时,只要您的计时器设置为,鼠标就会"静止".