I've got a short question and I hope somebody can help me.
Please look at the following code snippet:
public void mouseEntered(MouseEvent e){
//wait 2 seconds.
//if no other mouseEntered-event occurs, execute the following line
//otherwise restart, counting the 2 seconds.
foo();
}
Can somebody help me with that problem? I want to realize a behavior like an ToolTip: you enter a region with your mouse. If your mouse stays in that position, do something.
Start a Timer with a delay of 2 seconds in your
mouseEntered()
method that calls whatever it is you want to do.Set up a new handler (
mouseExited()
) that stops the timer if it hasn't gone off.Basically, you know the mouse is still there if
mouseExited()
hasn't been called. The timer will either go off in two seconds doing what you want or be cancelled if the mouse exits.Although the answer provided by @Brian Roach is correct, there is yet another (and more succinct) way of achieving this. That is, using the
ToolTipManager
.Example:
By invoking
setInitialDelay
, I've changed the time the manager waits to display the tool tip from 750ms to 2000ms.Note - Although I'm not sure, I think this may change the delay for ALL components (guess I was right), which may not be what you want..but it's still worth mentioning.