title: Label not listen for event when visibility is set to false
body: <p>first sorry for my english is not my native language. I want to make a maze game, for that i made an array that hold instance of my class "Cuadrado" that extends JLabel. Each instance represents a point in the path of the maze, so where is a block in the path i set the instance isVisible to true so it can show the image of the block and if the specific path is empty set the instance to false. everything is good when the game starts but i want to change the visibility of each block when i click on them so if the block is visible and i click on it i set visible to false but every instance that have at the start the visibility to false doesn't listen for the click event and i don't know why</p>
  
  <p>this is my Cuadrado class</p>
  
  <pre><code>public class Cuadrado extends JLabel
  {
     public Cuadrado(int x, int y)
     {
         super(new ImageIcon("Biblioteca/Cuadrado.png"));
         this.setLocation(x, y);
  
  
          this.addMouseListener(new MouseOverListener());
      }
  
    class MouseOverListener extends MouseAdapter
    {
          @Override
          public void mousePressed(MouseEvent e)
          {
              System.out.println(isVisible());
  
              if(isVisible() == false)
              {
                  System.out.println("Click");
                  setVisible(true);
              }
  
              else
              {
                  setVisible(false);
              }
  
      }
  
      @Override
      public void mouseDragged(MouseEvent e)
      {
  
          if(!isVisible())
              setVisible(true);
  
          else
              setVisible(false);
      }
  }
  }
  </code></pre>
  
  <p>And this is my Panel class</p>
  
  <pre><code>public class Stage extends JPanel 
  {   
  
  private Cuadrado[][] laberinto = new Cuadrado[7][7];
  
  public Stage()
  {
  
      this.setBackground(Color.BLACK);
  
      this.setLayout(new GridLayout(7,7));//fila x columna
  
  
      for(int fila = 0; fila &lt; laberinto.length; fila++)
          for(int columna = 0; columna &lt; laberinto[fila].length; columna++)
          {
  
              laberinto[fila][columna] = new Cuadrado(fila* 40, columna*40);
  
              //agregar los cuadrados al panel
              this.add(laberinto[fila][columna]);
          }
  
      try
      {
  
          File archivo = new File("Biblioteca/Laberinto inicial.txt");
  
          Scanner input = new Scanner(archivo);
  
          for(int fila = 0; fila &lt; laberinto.length; fila++)
          {
              for(int columna = 0; columna &lt; laberinto[fila].length; columna++)
              {   
                  int i = input.nextInt();
  
                  if(i == 0)
                      laberinto[fila][columna].setVisible(false);
  
                  else if(i == 1)
                      laberinto[fila][columna].setVisible(true);
              }
  
  
              if(input.hasNext())
                  input.nextLine();
          }
  
          input.close();
      }
  
      catch(IOException ex)
      {
          ex.printStackTrace();
      }
  
  }
  
  @Override
  protected void paintComponent(Graphics g)
  {
      super.paintComponent(g);
  
  }
  
  @Override
  public Dimension getPreferredSize()
  {
      return new Dimension(280, 280);
  }
  }
  </code></pre>
  
  <p>please let me know if you know why this happend i really dont know where is the problem, of if you need more explanation from me to understand the problem </p>