JToolTipWithIcon.java Source code

Java tutorial

Introduction

Here is the source code for JToolTipWithIcon.java

Source

//package modrcon;

import java.awt.*;
import javax.swing.plaf.metal.MetalToolTipUI;
import javax.swing.*;

public class JToolTipWithIcon extends JToolTip {

    protected ImageIcon icon;

    public JToolTipWithIcon(ImageIcon icon) {
        this.icon = icon;
        setUI(new IconToolTipUI());
    }

    public JToolTipWithIcon(MetalToolTipUI toolTipUI) {
        setUI(toolTipUI);
    }

    private class IconToolTipUI extends MetalToolTipUI {
        @Override
        public void paint(Graphics g, JComponent c) {
            FontMetrics metrics = c.getFontMetrics(c.getFont());
            Dimension size = c.getSize();
            g.setColor(c.getBackground());
            g.fillRect(0, 0, size.width, size.height);
            int x = 3;
            if (icon != null) {
                icon.paintIcon(c, g, 0, 0);
                x += icon.getIconWidth() + 1;
            }
            g.setColor(c.getForeground());
            g.drawString(((JToolTip) c).getTipText(), x, metrics.getHeight());
        }

        @Override
        public Dimension getPreferredSize(JComponent c) {
            return new Dimension(icon.getIconWidth(), icon.getIconHeight());
        }
    }
}