ToolTipにアイコンを表示

編集者:Terai Atsuhiro
作成日:2006-02-13
更新日:2022-08-18 (木) 02:50:19

概要

ToolTipにアイコンを表示します。

http://terai.xrea.jp/swing/tooltipicon/screenshot.png

サンプルコード

JLabel l1 = new JLabel("BorderFactoryでツールチップアイコン") {
  public JToolTip createToolTip() {
    JToolTip tip = new JToolTip();
    Border b1 = tip.getBorder();
    Border b2 = BorderFactory.createMatteBorder(1, 16, 1, 0, icon);
    tip.setBorder(BorderFactory.createCompoundBorder(b1, b2));
    tip.setComponent(this);
    String str = getToolTipText();
    Insets insets = tip.getInsets();
    FontMetrics fm = getFontMetrics(getFont());
    int w = SwingUtilities.computeStringWidth(fm, str);
    int h = fm.getHeight()+insets.top+insets.bottom;
    Dimension d = new Dimension(w+insets.left+insets.right, h);
    tip.setPreferredSize(d);
    return tip;
  }
};
l1.setToolTipText("テスト");
JLabel l2 = new JLabel("htmlタグでツールチップアイコン");
l2.setToolTipText("<html><img src='"+url+"'>テスト</img></html>");

解説

  • 上ラベル
    • MatteBorderを使ってアイコンを表示するように、createToolTipメソッドをオーバライドしています。
  • 下ラベル
    • htmlのimgタグをsetToolTipTextメソッドに使ってアイコンを表示しています。

コメント