title: JComponent and mouseListener very strange behavior
body: <p>I have created a simply program that show a JFram Window when your mouse is on a JLabel. It seems to work perfectly, until you pass the mouse over JLabel many times: JComponents begin to get broken like in this picture:</p>
  
  <p><a href="https://i.stack.imgur.com/eOvbk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/eOvbk.png" alt="enter image description here"></a></p>
  
  <p>JComponents start to appear anywhere, and JLabel that is supposed to be shown, has a "strange bold" font. I think it could happen because the program never "exit" the little window, so memory is never freed?! I may be wrong too... but surely i don't know why this happen!</p>
  
  <pre><code>import java.awt.GridLayout;
  import java.awt.Point;
  import java.awt.event.MouseEvent;
  import java.awt.event.MouseListener;
  
  import javax.swing.JButton;
  import javax.swing.JFrame;
  import javax.swing.JLabel;
  import javax.swing.JPanel;
  import javax.swing.JTextField;
  
  public class finestra implements MouseListener{
  
      private JFrame finestra = new JFrame();
      private JFrame pagina = new JFrame();
      private JButton submit1 = new JButton("press");
      private JTextField text = new JTextField();
      finestra(){
  
          pagina.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          pagina.setSize(500, 500);
  
          JPanel cont = new JPanel();
          cont.setLayout(new GridLayout(3,4));
  
              JLabel label = new JLabel();
              label.setText("ON MOUSEROVER THIS");
                  cont.add(label);
              label.addMouseListener(this);   
  
          cont.add(submit1);
          cont.add(text);
          pagina.add(cont);
          pagina.setVisible(true);
  
          finestra.setUndecorated(true);
      }
  
      @Override
      public void mouseClicked(MouseEvent arg0) {}
  
      @Override
      public void mouseEntered(MouseEvent event) {
          if(event.getSource() instanceof JLabel){
              JLabel event_casted = (JLabel)event.getSource();
  
              if(event_casted.getText().equals("ON MOUSEROVER THIS")){
                  Point punto = event.getLocationOnScreen();
                  punto.setLocation(punto.getX()+20, punto.getY()+20);
  
                  JLabel littlelabel = new JLabel();
  
                  littlelabel.setText("your mouse is on the jlabel");
                  finestra.add(littlelabel);
                  finestra.setLocation(punto);
                  finestra.setSize(100,100);
                  finestra.setVisible(true);
              }
          }
      }
  
      @Override
      public void mouseExited(MouseEvent event) {
          if(event.getSource() instanceof JLabel){
              JLabel event_casted = (JLabel)event.getSource();
                  if(event_casted.getText().equals("ON MOUSEROVER THIS")){
                      finestra.setVisible(false);
                  }
          }
      }
  
      @Override
      public void mousePressed(MouseEvent event) {
  
      }
  
      @Override
      public void mouseReleased(MouseEvent arg0) {}
  
      public static void main(String[] args0){
          new finestra();
      };
  
  }
  </code></pre>