Controle de dicas

Estou tentando colocar um JToolTipText como aviso para um JTextField. Quando o usuário digita algo errado o JToolTipText mostra imediatamente o erro sobre o campo. O problema é que não estou conseguindo fazer com o JToolTipText. Alguém poderia me dar uma dica?? Obrigado.

Vc pode dar uma olhada na classe javax.swing.JToolTip !!!
Acho ela resolve o seu problema.

Iai Heber, blz??

O lance é que eu já tentei com a classe JToolTip. O problema é que o objeto criado da classe JToolTip aparece apenas sobre o cursor do mouse e não sobre o objeto de JButton, por exemplo. O que eu quero é que apareça uma mensagem do tipo JToolTip sobre um componente, como o JButton ou JTextField e não apenas sobre o mouse. Será que vc sabe como fazer isto? Obrigado por qualquer ajuda.

Eu fiz um exemplo bem simples e fraco …
Para você utilizar terá que tratar mais coisas, tais como o tamanho do texto para o tooltip ficar com o tamanho legal.

[code]/*

  • Created on 07/04/2004
    */

import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.JToolTip;

/**

  • @author Heber
    */
    public class JToolTipErrorExample extends JDialog{

    JToolTip tip;

    public JToolTipErrorExample(){
    super(new JDialog(),"Testando JToolTip");

     tip = new JToolTip();
     
     JToolBar bar = new JToolBar();
     
     JTextField text = new JTextField();
     text.addKeyListener(
         new KeyAdapter() {
             public void keyReleased(KeyEvent e) {
                 JTextField t = (JTextField)e.getSource();
                 if(t.getText().length() > 10){
                     tip.setLocation(30,100);
                     tip.setTipText("Número maior que 10");
                     int height = tip.getFontMetrics(tip.getFont()).getHeight();
                     tip.setSize(150,height);
                     tip.setVisible(true);
                 }
             }
         }
     );
     
     bar.add(text);
     
     JPanel p = new JPanel();
     p.setLayout(null);
     p.add(tip);
     
     this.getContentPane().setLayout(new BorderLayout());
     this.getContentPane().add(bar,BorderLayout.NORTH);
     this.getContentPane().add(p,BorderLayout.CENTER);
     this.setSize(400,400);
     this.setVisible(true);
    

    }

    public static void main(String[] args) {
    new JToolTipErrorExample().addWindowListener(
    new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);
    }
    }
    );
    }
    }[/code]

Como você pode ver eu setei a posição e o tamanho do JToolTip, outra coisa muito importante é que você terá que colocar ele em algum Container (Pode ser até um Pop-Up) para poder ser visto!!

Espero que isso lhe sirva para seu propósito…