我有一个地图小程序,在鼠标后面有一个JLabel,每当鼠标经过一个城市时,JLable都会显示城市名称和人口名称。
我为此使用mouseMotionListener的MouseMoved方法,但是我希望标签仅在鼠标在城市上方停留几秒钟的情况下存在。
我不知道是否是因为我现在已经在使用此代码几天,但是我似乎无法想到使用MouseMoved方法的解决方案,我尝试使用计时器,但这对我没有用(也许我只是做错了原因我的大脑被烧坏了)
那么是否有鼠标监听器可以让鼠标保持静止?或您有什么建议吗?
这或多或少是我得到的
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。每次鼠标移动时,请重置计时器。计时器关闭后,只要设置了计时器,鼠标就会一直处于“静止”状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句