Tienes que agregar el listerner del mouse al component puerta y no al frame creo que hay radica el error luego agregas puerta al frame,despues en el componente ṕuerta colocas addMouseListener(this); obtienes los valores optenidos en "x" y "y" y en g.fillRect(0,0,50,50); en los 0 agregas "x" y "y" y despues remover e super, Asi si se optendran los valores correctamente ya lo he probado
Un Saludo,