Showing an Image in a ToolTip : Tooltip « Swing JFC « Java

Showing an Image in a ToolTip

import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JToolTip;
import javax.swing.SwingUtilities;
import javax.swing.plaf.metal.MetalToolTipUI;

public class Main {

  public static void main(String[] argv) {
    JLabel wonLabel = new JLabel() {
      public JToolTip createToolTip() {
        return new ImageToolTip();

class ImageToolTip extends JToolTip {
  public ImageToolTip() {
    setUI(new ImageToolTipUI());

class ImageToolTipUI extends MetalToolTipUI {
  public void paint(Graphics g, JComponent c) {
    FontMetrics metrics = c.getFontMetrics(g.getFont());
    g.drawString(((JToolTip) c).getTipText(), 1, 1);
    g.drawImage(new ImageIcon("yourImage").getImage(), 1, metrics.getHeight(), c);

  public Dimension getPreferredSize(JComponent c) {
    FontMetrics metrics = c.getFontMetrics(c.getFont());
    String tipText = ((JToolTip) c).getTipText();
    if (tipText == null) {
      tipText = "";
    Image image = new ImageIcon("yourImage").getImage();
    int width = SwingUtilities.computeStringWidth(metrics, tipText);
    int height = metrics.getHeight() + image.getHeight(c);

    if (width < image.getWidth(c)) {
      width = image.getWidth(c);
    return new Dimension(width, height);


Related examples in the same category

1.Tooltip SampleTooltip Sample
2.Html tooltipsHtml tooltips
3.Working with Tooltip TextWorking with Tooltip Text
4.MultiLine ToolTip ExampleMultiLine ToolTip Example
5.Colored ToolTip ExampleColored ToolTip Example
6.Disable / enable application tool tips
7.Making Tool Tips Remain Visible
8.Enabling and Disabling Tool Tips
9.Making Tool Tips Appear Immediately
10.Use the default tool tip location
11.Make a tool tips appear immediately
12.Showing an Image in a Tool Tip with HTML
13.Setting a Tool Tip
14.Setting the Location of a Tool Tip
15.By default, the lines are left justified. Center the lines.
16.Set the location of the tool tip such that its nw corner coincides with the bottom center of the button
17.Modify the behaviour of the default JToolTip
18.Italicize the second line
19.Changing ToolTip background color for Swing Applications
20.ToolTip Location ExampleToolTip Location Example
21.Set a tool tip for swing component
22.JToolTip With Icon