JToolTipにアイコンを表示

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

概要

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

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

サンプルコード

JLabel l1 = new JLabel("BorderFactoryでツールチップアイコン") {
  public JToolTip createToolTip() {
      JToolTip tip = super.createToolTip();
      Border b1 = tip.getBorder();
      Border b2 = BorderFactory.createMatteBorder(0, 16, 0, 0, icon);
      Border b3 = BorderFactory.createEmptyBorder(1, 1, 1, 1);
      Border b4 = BorderFactory.createCompoundBorder(b2, b3);
      tip.setBorder(BorderFactory.createCompoundBorder(b1, b4));
      Insets i = tip.getInsets();
      int w = tip.getPreferredSize().width+i.left+i.right+16;
      int h = i.top+i.bottom+16;
      tip.setPreferredSize(new Dimension(w,h));
      return tip;
  }
};
l1.setToolTipText("テスト");
JLabel l2 = new JLabel("htmlタグでツールチップアイコン");
l2.setToolTipText("<html><img src='"+url+"'>テスト</img></html>");

解説

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

コメント

  • MatteBorderを使うと1.4と1.5で表示が微妙に異なるようです。 -- terai