我有一個地圖小程序,並且我有一個JLabel跟隨着鼠標,只要鼠標移過一個城市,JLable就會顯示城市和人口的名稱。是否有一個NO MOTION鼠標監聽器?
我使用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("");
}
}
無關的建議:一旦找到相關的城市,不要檢查其餘的城市。 – 2011-03-11 01:03:30