Neste artigo, veremos como personalizar os "hints" mostrados por nossos componentes Java, tipicamente os botões (JButton). Para se adicionar uma dica (ou "hint") a um botão no Java, sabemos que devemos usar o método setToolTipText() da classe JButton.

 

O que alguns programadores não sabem é que esse hint pode ser bastante personalizável, utilizando para isto a classe javax.swing.ToolTipManager em combinação com uma String que seja um trecho de HTML comum. Veremos a seguir como funciona.

 

Para ajustar o tempo que o hint demorará para surgir ao pararmos o cursor do mouse sobre um botão, usamos o seguinte formato de código:

 

...

 

// Demora 1/2 segundo para surgir

ToolTipManager.sharedInstance().setInitialDelay(500);

 

...

 

No código acima, o hint aparecerá logo que passe 0,5 segundos. O parâmetro do método é o tempo desejado em milissegundos, daí o uso de 500.

 

Para fazer o hint demorar a desaparecer, usamos o seguinte código:

 

...

 

// Demora 8 segundos para desaparecer

ToolTipManager.sharedInstance().setDismissDelay(8000);

 

...

 

Neste caso, o parâmetro é 8000, ou seja, 8000 milissegundos, o que dá 8 segundos. Simples, não?

 

Agora vamos ao melhor. É possível passar como parâmetro para o setToolTipText() qualquer String, e se essa String representar um código HTML, ela assim será formatada. Isso nos permite usar fontes diferentes, quebras de linha, etc, tudo na mesma dica que surge. Vamos ver um exemplo para melhorar:

 

...

 

// Inicia o HTML do hint

String hint = "<HTML><FONT FACE=\"Tahoma\" SIZE=\"-2\">";

 

...

 

String desc = ... // Obter de algum lugar, como uma base de dados       

String timeStr = ... // Obter de algum lugar, como uma base de dados

 

...

       

hint += "<B>" + timeStr + "</B><BR>" + desc + "<BR>";

 

...

 

// Fecha o HTML do hint

hint += "</FONT></HTML>";

 

...

 

// Configura o hint

dayButtons[j].setToolTipText(hint); // dayButtons[j] é um objeto JButton

 

...

 

Pronto!! Nós iniciamos a String hint com o início de um código HTML e definimos o tipo de fonte e tamanho a serem usados. Depois, no nosso exemplo, obtemos 2 variáveis, uma para a hora e outra para uma descrição. Então vamos adicionando à variável hint trechos de HTML, como em hint += "<B>" + timeStr + "</B><BR>" + desc + "<BR>"; assim a hora aparecerá em negrito (uso das tags <B></B>), haverá uma quebra de linha (tag <BR>) e finalmente a descrição. Podemos fazer isso várias vezes, como dentro de um laço for, por exemplo. Ao final, fechamos o HTML usando hint += "</FONT></HTML>"; o último passo é simplesmente usar toda essa String para parâmetro do método setToolTipText. O hint ficará como o mostrado na figura lá de cima, por ex (esta GUI é um calendário de tarefas que criei):

 

Agora, bons códigos a todos!