Swing/ToolTipIcon のバックアップの現在との差分(No.13)
-
category: swing
folder: ToolTipIcon
title: JToolTipにアイコンを表示
tags: [JToolTip, Icon, JLabel, Html, MatteBorder]
author: aterai
pubdate: 2006-02-13T14:40:55+09:00
description: JToolTipにアイコンを表示します。
description: JToolTipにJLabel、MatteBorder、またはHtmlタグを使用してアイコンを表示する方法をテストします。
image:
概要
JToolTip
にアイコンを表示します。
概要
JToolTip
にJLabel
、MatteBorder
、またはHtml
タグを使用してアイコンを表示する方法をテストします。
Screenshot
![Swing/ToolTipIcon screenshot](https://ateraimemo.com/swing/tooltipicon/screenshot.png)
Advertisement
サンプルコード
サンプルコード
#spandel
JLabel l1 = new JLabel("JLabelを使ってツールチップにアイコン") {
#spanend
#spanadd
JLabel l1 = new JLabel("Icon") {
#spanend
@Override public JToolTip createToolTip() {
final JLabel iconlabel = new JLabel(icon);
iconlabel.setBorder(BorderFactory.createEmptyBorder(1,1,1,1));
JLabel iconlabel = new JLabel(icon);
iconlabel.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));
LookAndFeel.installColorsAndFont(
iconlabel, "ToolTip.background", "ToolTip.foreground", "ToolTip.font");
JToolTip tip = new JToolTip() {
@Override public Dimension getPreferredSize() {
//https://forums.oracle.com/thread/2199222
return getLayout().preferredLayoutSize(this);
}
@Override public void setTipText(final String tipText) {
#spanadd
#spanend
@Override public void setTipText(String tipText) {
String oldValue = iconlabel.getText();
iconlabel.setText(tipText);
firePropertyChange("tiptext", oldValue, tipText);
}
};
tip.setComponent(this);
tip.setLayout(new BorderLayout());
tip.add(iconlabel);
return tip;
}
};
l1.setToolTipText("Test1");
#spandel
View in GitHub: Java, Kotlin#spanend
#spandel
JLabel l2 = new JLabel("MatteBorderでツールチップにアイコン") {
#spanend
#spanadd
#spanend
#spanadd
JLabel l2 = new JLabel("MatteBorder") {
#spanend
@Override public JToolTip createToolTip() {
JToolTip tip = new JToolTip() {
@Override public Dimension getPreferredSize() {
Dimension d = super.getPreferredSize();
Insets i = getInsets();
d.height = Math.max(d.height, icon.getIconHeight()+i.top+i.bottom);
d.height = Math.max(d.height, icon.getIconHeight() + i.top + i.bottom);
return d;
}
};
tip.setComponent(this);
Border b1 = tip.getBorder();
Border b2 = BorderFactory.createMatteBorder(0, icon.getIconWidth(), 0, 0, icon);
Border b3 = BorderFactory.createEmptyBorder(1,1,1,1);
Border b3 = BorderFactory.createEmptyBorder(1, 1, 1, 1);
Border b4 = BorderFactory.createCompoundBorder(b3, b2);
tip.setBorder(BorderFactory.createCompoundBorder(b1, b4));
return tip;
}
};
l2.setToolTipText("Test2");
#spanadd
#spanend
#spanadd
JLabel l3 = new JLabel("html");
#spanend
#spanadd
l3.setToolTipText("<html><img src='" + url + "'>test</img></html>");
#spanend
#spanend
#spandel
JLabel l3 = new JLabel("htmlタグでツールチップにアイコン");
#spanend
#spandel
l3.setToolTipText("<html><img src='"+url+"'>テスト</img></html>");
#spanend
#spandel
解説
- 上ラベル
-
JToolTip
にJLabel
を追加しています。
-
- 中ラベル
-
MatteBorder
を使ってアイコンを表示するように、createToolTip
メソッドをオーバーライドしています。
-
- 下ラベル
-
html
のimg
タグをsetToolTipText
メソッドに使ってアイコンを表示しています。
-
解説
- 上:
ToolTip icon using JLabel
-
JToolTip
にアイコンを設定したJLabel
を追加
-
- 中:
ToolTip icon using MatteBorder
- アイコンを表示する
MatteBorder
をJToolTip
に設定するようcreateToolTip
メソッドをオーバーライド
- アイコンを表示する
- 下:
ToolTip icon using HTML tags
-
<html>
のimg
タグをsetToolTipText
メソッドに使用してアイコンを表示
-
参考リンク
- XP Style Icons - Windows Application Icon, Software XP Icons
- アイコンを利用しています。
- Swing - Using text and a progress bar inside of a tooltip.