Bom dia a todos. Gostaria da ajuda de alguém. Tenho uma frame que implementa a classe MouseListener e MouseMotionListener para ter a função de abrir a frame quando aproximasse o mouse e fechar a frame quando o cursor do mouse sair da área da frame. Quero fazer uma lista de telefone com um acesso rápido. A princípio funcionou tudo blz quando a frame vazia, mas agora que acrescentei alguns componentes, quando o cursor do mouse passa sobre algum deles (JTextField, JButton), ela fecha a frame como se tivesse tirado o cursor da área da frame. O código é este:
package gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JanelaInicial extends JFrame implements MouseListener,
MouseMotionListener {
{
//Set Look & Feel
try {
javax.swing.UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch(Exception e) {
e.printStackTrace();
}
}
private JTextField tfPesq;
private JButton btPesq;
public JanelaInicial(){
super("Pesquisar");
this.setSize(200, 627);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int x = dim.width - (this.getWidth()) ;
int y = (dim.height - this.getHeight()) / 2;
setLocation(x, y);
setLayout(null);
setUndecorated(true);
{
tfPesq = new JTextField("Pesquisar");
tfPesq.setBounds(3,5,100,23);
add(tfPesq);
}
{
btPesq = new JButton("Pesq");
btPesq.setBounds(100,5,100,23);
add(btPesq);
}
this.addMouseListener(this);
this.addMouseMotionListener(this);
Container c = getContentPane();
c.setLayout(new BorderLayout());
JLabel lbImagem = new JLabel(new ImageIcon(getClass().getClassLoader()
.getResource("img/water.jpg")));
c.add(lbImagem, BorderLayout.CENTER);
}
public void mouseClicked( MouseEvent e ){
}
public void mousePressed( MouseEvent e ){
}
public void mouseReleased( MouseEvent e ){
}
public void mouseEntered( MouseEvent e ){
mostraJanela(true);
}
public void mouseExited( MouseEvent e ){
mostraJanela(false);
}
// Tratadores de MouseMotionListener
public void mouseDragged( MouseEvent e ){
}
public void mouseMoved( MouseEvent e ){
}
public void mostraJanela(Boolean valor){
this.setVisible(valor);
}
}
Desde já agradeço!!!