У меня есть апплет карты, и у меня есть 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("");
}
}