Controle de dicas

3 respostas
NapoCoelho

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.

3 Respostas

Heber

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

NapoCoelho

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.

Heber

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.

/*
 * 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);
                }
            }
        );
    }
}

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...

Criado 30 de março de 2004
Ultima resposta 7 de abr. de 2004
Respostas 3
Participantes 2