Hovering over JButtons and displaying a message

java, jbutton, mousemotionevent, swing, tooltip

Solution

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>");

Problem

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 } ```

Original source