I want to hover over a number of JButtons on my GUI (map) and display the name of that location e.g. Manchester and London. I have the code working for one button, but it does not work for more than one button and prints the last out
message (as i have 10 buttons) for all button locations.
If button1
is true it then draws the text on the GUI in the specified area via my paintComponent()
method.
How can i resolve this?
button1.addMouseMotionListener(this);
button2.addMouseMotionListener(this);
public void mouseMoved(MouseEvent arg0)
{
if(button1.contains(arg0.getPoint()))
{
button1 = true;
out = "test 1";
repaint();
}
if(!button1.contains(arg0.getPoint()))
{
b1 = false;
out = " ";
repaint();
}//same for all 10 buttons but change variables
}
Why not use the tool tip API that already exists?
button.setTooltip("Manchester");
You even use HTML text to produce formatted results.
button.setTooltip("<html>Manchester<br>53.4800° N, 2.2400° W</html>");
If the images are embedded, you can even supply an image...
button.setTooltip("<html><img src=" + getClass().getResource("/someimage") + "/>Manchester<br>53.4800° N, 2.2400° W</html>");
don't to use MouseListener
or MosueMotionListener
from JButton
, this method are correctly implemented in JButtons API
,
there no reason, I can't found reason to use repaint()
for this job
another way is add ChangeListener
to JButton
and take rellated event(s) from derived ButtonModel
for better help sooner post an SSCCE, short, runnable, compilable, just about JFrame
with one JButton
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With