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.
Controle de dicas
3 Respostas
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.
/*
* 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...