Alguém sabe como fazer com que o ToolTipManager mostre imagens no ToolTip ao invés de mostrar somente texto.
Por exemplo:
Eu tenho um JLabel, eu quero que ao deixar o mouse sobre o JLabel seja mostrado um ToolTip com uma imagem e não com um texto (que é a única coisa que eu sei colocar).
Fazer um ToolTip com uma Imagem dentro é simples, mas fazer com que o ToolTipManager mostre esse TooTip é very difícil. 
Oi
Heber, tu faz isso usando HTML dentro do ToolTIp, isso mesmo, HTML…
No teu SDK, no diretório EXAMPLES, tem o SwingSet2… nele tem um trecho de código que ensina como se faz isso.
T+
Só tem um pequeno problema,
pra mim poder usar via <html> eu teria que saber onde a imagem está em armazenada, mas minha imagem é criada em tempo de execução, ela não existe em disco.
Oi
Heber, então a coisa é mais embixao hein… Assim eu não sei não…
T+
Galera consegui resolver!!!
Apesar de ter um pouco de Gambiarra.
Todo JComponent possui o método createToolTip() e toda vez que o ToolTipManager vai mostrar o JToolTip ele chama esse método e faz um JToolTip#setTipText(String), então qual seria a solução???
Foram necessários dois passos para resolver esse problema
-
Sobrescrever o método JComponent#createToolTip(), no meu caso um JButton
-
Sobrescrever o método JToolTip#setTipText(String).
O código ficaria assim:
[code]public class MeuComponente extends JButton{
private Icon icon;
public MeuComponent(String s,Icon icon){
super(s);
this.icon = icon;
setToolTipText(s); // Para registrar no ToolTipManager
}
public JToolTip createToolTip() {
JToolTip tip = new JToolTip(){
public void setTipText(String text){
if(icon == null){
super.setTipText(text);
}
}
};
tip.setComponent(this);
if(icon != null){
tip.setLayout(new BorderLayout());
tip.add(new JLabel(icon),BorderLayout.CENTER);
tip.setPreferredSize(
new Dimension(
icon.getIconWidth(),
icon.getIconHeight()));
}
return tip;
}
}[/code]
Bem por hoje é só !!!