diff --git a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
index a36876f19d1aae67744f477728b3ce326971679b..e3c9e95db08df5caf6da51fac3eeceacd5a546ee 100644
--- a/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
+++ b/UyTube_aplicacion/src/Logica/Controladores/CAdmin.java
@@ -620,7 +620,7 @@ public class CAdmin implements IAdmin{
     
     public boolean validarNuevaListaParticular(String nombre){
         /**
-         * Devuelve true si usuarioSeleccionado posee una lista de reproducion con ese nombre
+         * Devuelve false si usuarioSeleccionado posee una lista de reproducion con ese nombre
          */
         if (this.usuarioSeleccionado == null){
             throw new RuntimeException("El sistema no tiene un usuario seleccionado");
diff --git a/UyTube_aplicacion/src/Logica/main.java b/UyTube_aplicacion/src/Logica/main.java
deleted file mode 100644
index 9fd2eceeae347b30079418c5433b5e5f3c0f9927..0000000000000000000000000000000000000000
--- a/UyTube_aplicacion/src/Logica/main.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package Logica;
-
-public class main {
-    public static void main(String[] args) {
-        
-    }
-}
diff --git a/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java b/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
index 491c319329997dc996883008e289009324f10138..ab3b13fb6fd6c616784f8ae4a0baa4d800c85c37 100644
--- a/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
+++ b/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
@@ -23,13 +23,22 @@ public class DatosDePrueba {
         sys = f.getIAdmin();
         // ahora se puede interactuar con el sistema invocando sus funciones mediante sys
         
+        cargarCategorias();
         cargarUsuariosYCanales();
+        cargarSeguidores();
         cargarVideosAUsuarios();
         cargarListasDeReproduccionAUsuarios();
         agregarVideosAListasDeReproduccion();
+        agregarComentarios();
         mostrarDatos();
     }
     
+    private static void cargarCategorias(){
+        sys.altaCategoria("MUSICA");
+        sys.altaCategoria("DEPORTE");
+        sys.altaCategoria("GAMING");
+    }
+    
     private static void cargarUsuariosYCanales(){
         /* Plantilla de creacion de usuario:
         instance.altaUsuarioCanal(
@@ -61,8 +70,36 @@ public class DatosDePrueba {
                 new DtUsuario("jarrieta31", "jarrieta31", "Julio", "Arrieta", "julioarrieta23@gmail.com", new Date(76, 1, 31), "https://images.app.goo.gl/MX2hauy99QVndWdv6", 0),
                 new DtCanal(0, "jarrieta31", "El mejor canal para pasar el rato", Privacidad.PUBLICO)
         );
-
-
+    }
+    
+    private static void cargarSeguidores(){
+        sys.seleccionarUsuario("JotaJota96");
+        sys.seleccionarUsuarioActual("LuC31G");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("camilillo15");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("MCBolso");
+        sys.seguirUsuario();
+        
+        sys.seleccionarUsuario("LuC31G");
+        sys.seleccionarUsuarioActual("JotaJota96");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("jarrieta31");
+        sys.seguirUsuario();
+        
+        
+        sys.seleccionarUsuario("jarrieta31");
+        sys.seleccionarUsuarioActual("LuC31G");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("JotaJota96");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("MCBolso");
+        sys.seguirUsuario();
+        sys.seleccionarUsuarioActual("camilillo15");
+        sys.seguirUsuario();
+        
+        sys.liberarMemoriaUsuario();
+        sys.liberarMemoriaUsuarioActual();
     }
     
     private static void cargarVideosAUsuarios(){
@@ -76,16 +113,16 @@ public class DatosDePrueba {
         
         sys.seleccionarUsuario("JotaJota96");
         sys.altaVideo(
-                new DtVideo(0, "Naufrago - 4 Pesos de Propina (Cover en guitarra)", "Cover de Naufrago - 4 Pesos de Propina ", new Time(18, 30, 3), new Date(119, 1, 2), "https://www.youtube.com/watch?v=ksuDZQuJLSY", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "Naufrago - 4 Pesos de Propina (Cover en guitarra)", "Cover de Naufrago - 4 Pesos de Propina ", new Time(18, 30, 3), new Date(119, 1, 2), "https://www.youtube.com/watch?v=ksuDZQuJLSY", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "Como pasa el tiempo - Cuarteto de nos (Cover en guitarra)", "Cover de Como pasa el tiempo - Cuarteto de nos ", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=n1AR_VSHPek", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "Como pasa el tiempo - Cuarteto de nos (Cover en guitarra)", "Cover de Como pasa el tiempo - Cuarteto de nos ", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=n1AR_VSHPek", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "La casa de al lado Christian Cary (Cover en guitarra)", "Cover de La casa de al lado Christian Cary", new Time(21, 15, 0), new Date(119, 6, 21), "https://www.youtube.com/watch?v=An0uvGCUB9k", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "La casa de al lado Christian Cary (Cover en guitarra)", "Cover de La casa de al lado Christian Cary", new Time(21, 15, 0), new Date(119, 6, 21), "https://www.youtube.com/watch?v=An0uvGCUB9k", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "Verde - La Triple Nelson (Cover en guitarra)", "Cover de Verde - La Triple Nelson", new Time(11, 38, 0), new Date(119, 8, 29), "https://www.youtube.com/watch?v=ojYnrNRXOjk", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "Verde - La Triple Nelson (Cover en guitarra)", "Cover de Verde - La Triple Nelson", new Time(11, 38, 0), new Date(119, 8, 29), "https://www.youtube.com/watch?v=ojYnrNRXOjk", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.liberarMemoriaUsuario();
         
@@ -102,23 +139,23 @@ public class DatosDePrueba {
                 new DtVideo(0, "NO CREERÁS LO QUE LLEVO EN MI BOLSO", "Camila Guiribitey", new Time(18, 30, 3), new Date(119, 1, 2), "https://www.youtube.com/watch?v=7wCUuplgmQM", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "C.N. de F. Tema Nuevo 2019", "Por la del Bolso hay que matar o morir - La Banda Del Parque", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=9L5qQ9iyhJk", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "C.N. de F. Tema Nuevo 2019", "Por la del Bolso hay que matar o morir - La Banda Del Parque", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=9L5qQ9iyhJk", Privacidad.PRIVADO, "DEPORTE", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "No se como voy, no se como vengo", "Canta el bolso en la previa vs San Lorenzo", new Time(21, 15, 0), new Date(119, 6, 21), "https://www.youtube.com/watch?v=S0_FBF8XaO0", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "No se como voy, no se como vengo", "Canta el bolso en la previa vs San Lorenzo", new Time(21, 15, 0), new Date(119, 6, 21), "https://www.youtube.com/watch?v=S0_FBF8XaO0", Privacidad.PRIVADO, "DEPORTE", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "Las mejores canciones de La Banda", "de La Banda del Parque (CON LETRA) | Hinchada de Nacional 2019", new Time(11, 38, 0), new Date(119, 8, 29), "https://www.youtube.com/watch?v=ob0TPs5-Y5Y", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "Las mejores canciones de La Banda", "de La Banda del Parque (CON LETRA) | Hinchada de Nacional 2019", new Time(11, 38, 0), new Date(119, 8, 29), "https://www.youtube.com/watch?v=ob0TPs5-Y5Y", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.liberarMemoriaUsuario();
         
         
         sys.seleccionarUsuario("camilillo15");
         sys.altaVideo(
-                new DtVideo(1, "505 - Arctic Monkeys", "Album Favourite Worst Nightmare", new Time(18, 30, 3), new Date(119, 1, 2), "https://www.youtube.com/watch?v=iV5VKdcQOJE", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(1, "505 - Arctic Monkeys", "Album Favourite Worst Nightmare", new Time(18, 30, 3), new Date(119, 1, 2), "https://www.youtube.com/watch?v=iV5VKdcQOJE", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.altaVideo(
-                new DtVideo(0, "Wonderwall - Oasis", "Ni idea como se llama el album", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=bx1Bh8ZvH84", Privacidad.PRIVADO, "UNDEFINED", 0, 0)
+                new DtVideo(0, "Wonderwall - Oasis", "Ni idea como se llama el album", new Time(15, 0, 0), new Date(119, 4, 15), "https://www.youtube.com/watch?v=bx1Bh8ZvH84", Privacidad.PRIVADO, "MUSICA", 0, 0)
         );
         sys.liberarMemoriaUsuario();
         
@@ -127,7 +164,6 @@ public class DatosDePrueba {
         sys.altaVideo(
                 new DtVideo(1, "Tutorial android 1", "Curso de android, tarea 4", new Time(00, 04, 2), new Date(119, 9, 30), "https://www.youtube.com/watch?v=xCq7YXGXaLc&list=PL-6ex1wzFuEh9RUN-5nCOU13eYknEXl09", Privacidad.PUBLICO, "UNDEFINED", 0, 0)
         );
-        sys.seleccionarUsuario("jarrieta31");
         sys.altaVideo(
                 new DtVideo(1, "Tutorial android 2", "Curso de android, tarea 5", new Time(00, 1, 17), new Date(119, 9, 30), "https://www.youtube.com/watch?v=i4W5LFeIdNU", Privacidad.PUBLICO, "UNDEFINED", 0, 0)
         );
@@ -226,6 +262,52 @@ public class DatosDePrueba {
         
     }
     
+
+    private static void agregarComentarios(){
+        sys.seleccionarUsuario("JotaJota96");
+        sys.seleccionarVideo(1);
+        
+        // 1
+        sys.seleccionarUsuarioActual("LuC31G");
+        sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Buenisimo!!", 0));
+            // 2
+            sys.seleccionarUsuarioActual("JotaJota96");
+            sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Gracias!!!", 0), 1);
+        // 3
+        sys.seleccionarUsuarioActual("camilillo15");
+        sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Cuando sale algo de los Artic Monkeys?",0));
+            // 4
+            sys.seleccionarUsuarioActual("LuC31G");
+            sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Solo sube covers de rock nacional", 0), 3);
+                // 5
+                sys.seleccionarUsuarioActual("MCBolso");
+                sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "siempre hay un boludo", 0), 4);
+            // 6
+            sys.seleccionarUsuarioActual("jarrieta31");
+            sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "O de los Guns and Roses", 0), 3);
+                // 7
+                sys.seleccionarUsuarioActual("MCBolso");
+                sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "otro mas...", 0), 6);
+                    // 8
+                    sys.seleccionarUsuarioActual("jarrieta31");
+                    sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "otro mas que?", 7), 7);
+        // 9
+        sys.seleccionarUsuarioActual("MCBolso");
+        sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "¿Que usas para editar el video?", 0));
+            // 10
+            sys.seleccionarUsuarioActual("JotaJota96");
+            sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Sony Vegas Pro en Windows 10", 0), 9);
+                // 11
+                sys.seleccionarUsuarioActual("MCBolso");
+                sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Tipico, nadie usa Linux.", 0), 10);
+                    // 12
+                    sys.seleccionarUsuarioActual("jarrieta31");
+                    sys.altaComentario(new DtComentario(0, "", new Date(119, 7, 1), "Boo, que paso con Linux? hee??", 0), 11);
+
+    }
+    
+    
+    /////////////////////////////////////////////////////////////////////////////////////////////
     // Esta tampoco la toquen
     private static void mostrarDatos(){
         ArrayList<DtUsuario> users = sys.listarUsuarios();
@@ -236,10 +318,23 @@ public class DatosDePrueba {
             System.out.println(u.toString());
             sys.seleccionarUsuario(u.getNickname());
             
-            tab(tab+1);   System.out.println("-- Videos --");
+            tab(tab+1);   System.out.println("Videos:");
             for (DtVideo v : sys.listarVideosDeUsuario()) {
                tab(tab+1);   System.out.println(v.toString());
+                
+               tab(tab+2);   System.out.println("Comentarios :");
+               sys.seleccionarVideo(v.getId());
+               boolean vacio = true;
+               for (DtComentario c : sys.listarComentariosDeVideo()){
+                   vacio = false;
+                   tab(tab+2); tab(c.getNivelSubComentario()); System.out.println(c.toString());
+                }
+               if (vacio){
+                   tab(tab+2);  System.out.println("No hay comentarios");
+               }
+                System.out.println("");
             }
+            System.out.println("");
             
             tab(tab+1);   System.out.println("-- Listas --");
             for (DtListaDeReproduccion l : sys.listarListasDeReproduccionDeUsuario(u.getNickname())) {
diff --git a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.form b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.form
new file mode 100644
index 0000000000000000000000000000000000000000..05d9eba105139c999f2ca1b719a9923c99542e22
--- /dev/null
+++ b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.form
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+  <Properties>
+    <Property name="defaultCloseOperation" type="int" value="2"/>
+  </Properties>
+  <SyntheticProperties>
+    <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+    <SyntheticProperty name="generateCenter" type="boolean" value="false"/>
+  </SyntheticProperties>
+  <AuxValues>
+    <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+    <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
+    <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+    <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+    <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+  </AuxValues>
+
+  <Layout>
+    <DimensionLayout dim="0">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <EmptySpace min="0" pref="400" max="32767" attributes="0"/>
+      </Group>
+    </DimensionLayout>
+    <DimensionLayout dim="1">
+      <Group type="103" groupAlignment="0" attributes="0">
+          <EmptySpace min="0" pref="300" max="32767" attributes="0"/>
+      </Group>
+    </DimensionLayout>
+  </Layout>
+</Form>
diff --git a/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.java b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.java
new file mode 100644
index 0000000000000000000000000000000000000000..accf9bc2c8d4bc4ba7cfba03ad5a4e807824fff2
--- /dev/null
+++ b/UyTube_aplicacion/src/Presentacion/ListaDeReproduccion/AltaListaDeReproduccion.java
@@ -0,0 +1,49 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package Presentacion.ListaDeReproduccion;
+
+/**
+ *
+ * @author Juan
+ */
+public class AltaListaDeReproduccion extends javax.swing.JDialog {
+
+    /**
+     * Creates new form AltaListaDeReproduccion
+     */
+    public AltaListaDeReproduccion(java.awt.Frame parent, boolean modal) {
+        super(parent, modal);
+        initComponents();
+    }
+
+    /**
+     * This method is called from within the constructor to initialize the form.
+     * WARNING: Do NOT modify this code. The content of this method is always
+     * regenerated by the Form Editor.
+     */
+    @SuppressWarnings("unchecked")
+    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+    private void initComponents() {
+
+        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+
+        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+        getContentPane().setLayout(layout);
+        layout.setHorizontalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 400, Short.MAX_VALUE)
+        );
+        layout.setVerticalGroup(
+            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+            .addGap(0, 300, Short.MAX_VALUE)
+        );
+
+        pack();
+    }// </editor-fold>//GEN-END:initComponents
+
+    // Variables declaration - do not modify//GEN-BEGIN:variables
+    // End of variables declaration//GEN-END:variables
+}
diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.form b/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.form
index aeb66ebe695cb6c961f513e94039eef625cdc060..c285138c25cb018026bf113a9ce336375824cfcd 100644
--- a/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.form
+++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.form
@@ -136,7 +136,7 @@
         </Component>
         <Component class="javax.swing.JLabel" name="jLabel22">
           <Properties>
-            <Property name="text" type="java.lang.String" value="Fecha n:"/>
+            <Property name="text" type="java.lang.String" value="Nacimiento: "/>
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
@@ -184,7 +184,7 @@
         <Component class="javax.swing.JLabel" name="lbFechaN">
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="290" y="190" width="210" height="20"/>
+              <AbsoluteConstraints x="300" y="190" width="200" height="20"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -194,7 +194,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="290" y="160" width="260" height="20"/>
+              <AbsoluteConstraints x="300" y="160" width="200" height="20"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -204,7 +204,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="290" y="130" width="260" height="-1"/>
+              <AbsoluteConstraints x="300" y="130" width="200" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -214,24 +214,24 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="290" y="100" width="260" height="-1"/>
+              <AbsoluteConstraints x="300" y="100" width="200" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
-        <Component class="javax.swing.JLabel" name="lbUsuario">
+        <Component class="javax.swing.JLabel" name="lbCantSeguidores">
           <Properties>
             <Property name="text" type="java.lang.String" value=" "/>
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="290" y="70" width="260" height="-1"/>
+              <AbsoluteConstraints x="630" y="20" width="100" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
         <Component class="javax.swing.JSeparator" name="jSeparator3">
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="0" y="340" width="550" height="10"/>
+              <AbsoluteConstraints x="0" y="340" width="530" height="10"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -272,7 +272,9 @@
           <SubComponents>
             <Component class="javax.swing.JTextArea" name="txtDescripcion">
               <Properties>
+                <Property name="editable" type="boolean" value="false"/>
                 <Property name="columns" type="int" value="20"/>
+                <Property name="lineWrap" type="boolean" value="true"/>
                 <Property name="rows" type="int" value="5"/>
               </Properties>
             </Component>
@@ -284,7 +286,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="550" y="0" width="10" height="560"/>
+              <AbsoluteConstraints x="530" y="0" width="10" height="560"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -297,7 +299,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="380" y="450" width="120" height="40"/>
+              <AbsoluteConstraints x="370" y="450" width="120" height="40"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -307,14 +309,14 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="80" y="360" width="110" height="-1"/>
+              <AbsoluteConstraints x="90" y="360" width="110" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
         <Component class="javax.swing.JSeparator" name="jSeparator5">
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="550" y="230" width="440" height="10"/>
+              <AbsoluteConstraints x="530" y="230" width="460" height="10"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -327,7 +329,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="590" y="20" width="-1" height="-1"/>
+              <AbsoluteConstraints x="550" y="20" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -340,7 +342,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="790" y="20" width="-1" height="-1"/>
+              <AbsoluteConstraints x="770" y="20" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -350,7 +352,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="790" y="50" width="160" height="150"/>
+              <AbsoluteConstraints x="770" y="50" width="180" height="150"/>
             </Constraint>
           </Constraints>
 
@@ -374,7 +376,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="590" y="50" width="160" height="150"/>
+              <AbsoluteConstraints x="550" y="50" width="190" height="150"/>
             </Constraint>
           </Constraints>
 
@@ -404,7 +406,7 @@
           </Events>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="593" y="480" width="360" height="50"/>
+              <AbsoluteConstraints x="553" y="480" width="410" height="50"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -417,7 +419,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="590" y="240" width="-1" height="-1"/>
+              <AbsoluteConstraints x="550" y="240" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -430,7 +432,7 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="790" y="240" width="-1" height="-1"/>
+              <AbsoluteConstraints x="770" y="240" width="-1" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
@@ -440,7 +442,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="590" y="270" width="160" height="190"/>
+              <AbsoluteConstraints x="550" y="270" width="200" height="190"/>
             </Constraint>
           </Constraints>
 
@@ -464,7 +466,7 @@
           </AuxValues>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="790" y="272" width="160" height="190"/>
+              <AbsoluteConstraints x="770" y="272" width="190" height="190"/>
             </Constraint>
           </Constraints>
 
@@ -492,7 +494,27 @@
           </Properties>
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
-              <AbsoluteConstraints x="350" y="410" width="170" height="110"/>
+              <AbsoluteConstraints x="350" y="410" width="160" height="110"/>
+            </Constraint>
+          </Constraints>
+        </Component>
+        <Component class="javax.swing.JLabel" name="lbNickName">
+          <Properties>
+            <Property name="text" type="java.lang.String" value=" "/>
+          </Properties>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="300" y="70" width="200" height="-1"/>
+            </Constraint>
+          </Constraints>
+        </Component>
+        <Component class="javax.swing.JLabel" name="lbCantSeguidos">
+          <Properties>
+            <Property name="text" type="java.lang.String" value=" "/>
+          </Properties>
+          <Constraints>
+            <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
+              <AbsoluteConstraints x="840" y="20" width="100" height="-1"/>
             </Constraint>
           </Constraints>
         </Component>
diff --git a/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java b/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java
index 689cfe7660f6dc4fc522e75f02a63f259cd9c64c..c931ce106bc7d9471cb9577e9611bc306df653d0 100644
--- a/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java
+++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java
@@ -1,12 +1,37 @@
 package Presentacion.Usuario;
+
+import Logica.DataType.DtCanal;
+import Logica.DataType.DtListaDeReproduccion;
+import Logica.DataType.DtUsuario;
+import Logica.DataType.DtVideo;
+import Logica.Enumerados.Privacidad;
+import Logica.Fabrica;
+import Logica.Interfaces.IAdmin;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import javax.swing.DefaultListModel;
+import javax.swing.JOptionPane;
+
 public class frmConsultaUsuario extends javax.swing.JDialog {
+
+    IAdmin sys;
     
     public frmConsultaUsuario(java.awt.Frame parent, boolean modal) {
         super(parent, modal);
         initComponents();
         this.setLocationRelativeTo(null);
+        
+        try {
+            // obtiene la instancia de sistema
+            sys = Fabrica.getInstancia().getIAdmin();
+
+            // lista usuarios en el JList
+            listarUsuarios(sys.listarUsuarios());
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
     }
-    
+
     @SuppressWarnings("unchecked")
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
@@ -27,7 +52,7 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
         lbEmail = new javax.swing.JLabel();
         lbApellido = new javax.swing.JLabel();
         lbNombre = new javax.swing.JLabel();
-        lbUsuario = new javax.swing.JLabel();
+        lbCantSeguidores = new javax.swing.JLabel();
         jSeparator3 = new javax.swing.JSeparator();
         jLabel30 = new javax.swing.JLabel();
         jLabel32 = new javax.swing.JLabel();
@@ -51,6 +76,8 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
         jScrollPane21 = new javax.swing.JScrollPane();
         lstListaReproduccion = new javax.swing.JList<>();
         jLabel51 = new javax.swing.JLabel();
+        lbNickName = new javax.swing.JLabel();
+        lbCantSeguidos = new javax.swing.JLabel();
 
         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
         setTitle("Consulta usuario");
@@ -82,7 +109,7 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
         jLabel21.setText("Email:");
         jPanel6.add(jLabel21, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 160, -1, -1));
 
-        jLabel22.setText("Fecha n:");
+        jLabel22.setText("Nacimiento: ");
         jPanel6.add(jLabel22, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 190, -1, -1));
 
         jLabel23.setText("Imagen:");
@@ -93,20 +120,20 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
         jPanel1.add(lstImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 100, 90));
 
         jPanel6.add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 230, 100, 90));
-        jPanel6.add(lbFechaN, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 190, 210, 20));
+        jPanel6.add(lbFechaN, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 190, 200, 20));
 
         lbEmail.setText(" ");
-        jPanel6.add(lbEmail, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 160, 260, 20));
+        jPanel6.add(lbEmail, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 160, 200, 20));
 
         lbApellido.setText(" ");
-        jPanel6.add(lbApellido, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 130, 260, -1));
+        jPanel6.add(lbApellido, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 130, 200, -1));
 
         lbNombre.setText(" ");
-        jPanel6.add(lbNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 100, 260, -1));
+        jPanel6.add(lbNombre, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 100, 200, -1));
 
-        lbUsuario.setText(" ");
-        jPanel6.add(lbUsuario, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 70, 260, -1));
-        jPanel6.add(jSeparator3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 340, 550, 10));
+        lbCantSeguidores.setText(" ");
+        jPanel6.add(lbCantSeguidores, new org.netbeans.lib.awtextra.AbsoluteConstraints(630, 20, 100, -1));
+        jPanel6.add(jSeparator3, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 340, 530, 10));
 
         jLabel30.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
         jLabel30.setText("Canal:");
@@ -115,38 +142,40 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
         jLabel32.setText("Descripcion:");
         jPanel6.add(jLabel32, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 390, -1, -1));
 
+        txtDescripcion.setEditable(false);
         txtDescripcion.setColumns(20);
+        txtDescripcion.setLineWrap(true);
         txtDescripcion.setRows(5);
         jScrollPane5.setViewportView(txtDescripcion);
 
         jPanel6.add(jScrollPane5, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 420, 290, 100));
 
         jSeparator4.setOrientation(javax.swing.SwingConstants.VERTICAL);
-        jPanel6.add(jSeparator4, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 0, 10, 560));
+        jPanel6.add(jSeparator4, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 0, 10, 560));
 
         lbPrivacidad.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
         lbPrivacidad.setText(" ");
-        jPanel6.add(lbPrivacidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(380, 450, 120, 40));
+        jPanel6.add(lbPrivacidad, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 450, 120, 40));
 
         lbNombreCanal.setText(" ");
-        jPanel6.add(lbNombreCanal, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 360, 110, -1));
-        jPanel6.add(jSeparator5, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 230, 440, 10));
+        jPanel6.add(lbNombreCanal, new org.netbeans.lib.awtextra.AbsoluteConstraints(90, 360, 110, -1));
+        jPanel6.add(jSeparator5, new org.netbeans.lib.awtextra.AbsoluteConstraints(530, 230, 460, 10));
 
         jLabel39.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
         jLabel39.setText("Segidores:");
-        jPanel6.add(jLabel39, new org.netbeans.lib.awtextra.AbsoluteConstraints(590, 20, -1, -1));
+        jPanel6.add(jLabel39, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 20, -1, -1));
 
         jLabel40.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
         jLabel40.setText("Segidos:");
-        jPanel6.add(jLabel40, new org.netbeans.lib.awtextra.AbsoluteConstraints(790, 20, -1, -1));
+        jPanel6.add(jLabel40, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 20, -1, -1));
 
         jScrollPane8.setViewportView(lstSeguidos);
 
-        jPanel6.add(jScrollPane8, new org.netbeans.lib.awtextra.AbsoluteConstraints(790, 50, 160, 150));
+        jPanel6.add(jScrollPane8, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 50, 180, 150));
 
         jScrollPane9.setViewportView(lstSeguidores);
 
-        jPanel6.add(jScrollPane9, new org.netbeans.lib.awtextra.AbsoluteConstraints(590, 50, 160, 150));
+        jPanel6.add(jScrollPane9, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 50, 190, 150));
 
         btnAceptar.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
         btnAceptar.setText("Aceptar");
@@ -155,26 +184,32 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
                 btnAceptarActionPerformed(evt);
             }
         });
-        jPanel6.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(593, 480, 360, 50));
+        jPanel6.add(btnAceptar, new org.netbeans.lib.awtextra.AbsoluteConstraints(553, 480, 410, 50));
 
         jLabel79.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
         jLabel79.setText("Videos:");
-        jPanel6.add(jLabel79, new org.netbeans.lib.awtextra.AbsoluteConstraints(590, 240, -1, -1));
+        jPanel6.add(jLabel79, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 240, -1, -1));
 
         jLabel80.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
         jLabel80.setText("Listas de Reproduccion:");
-        jPanel6.add(jLabel80, new org.netbeans.lib.awtextra.AbsoluteConstraints(790, 240, -1, -1));
+        jPanel6.add(jLabel80, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 240, -1, -1));
 
         jScrollPane20.setViewportView(lstVideos);
 
-        jPanel6.add(jScrollPane20, new org.netbeans.lib.awtextra.AbsoluteConstraints(590, 270, 160, 190));
+        jPanel6.add(jScrollPane20, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 270, 200, 190));
 
         jScrollPane21.setViewportView(lstListaReproduccion);
 
-        jPanel6.add(jScrollPane21, new org.netbeans.lib.awtextra.AbsoluteConstraints(790, 272, 160, 190));
+        jPanel6.add(jScrollPane21, new org.netbeans.lib.awtextra.AbsoluteConstraints(770, 272, 190, 190));
 
         jLabel51.setBorder(javax.swing.BorderFactory.createTitledBorder("Privacidad"));
-        jPanel6.add(jLabel51, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 410, 170, 110));
+        jPanel6.add(jLabel51, new org.netbeans.lib.awtextra.AbsoluteConstraints(350, 410, 160, 110));
+
+        lbNickName.setText(" ");
+        jPanel6.add(lbNickName, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 70, 200, -1));
+
+        lbCantSeguidos.setText(" ");
+        jPanel6.add(lbCantSeguidos, new org.netbeans.lib.awtextra.AbsoluteConstraints(840, 20, 100, -1));
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
         getContentPane().setLayout(layout);
@@ -201,14 +236,94 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
     }// </editor-fold>//GEN-END:initComponents
 
     private void lstUsuariosValueChanged(javax.swing.event.ListSelectionEvent evt) {//GEN-FIRST:event_lstUsuariosValueChanged
-
+        try {
+            String nick = lstUsuarios.getSelectedValue();
+            DtUsuario dtu = sys.seleccionarUsuario(nick);
+            cargarLabelsConDatosDelUsuario(dtu);
+            DtCanal dtc = sys.obtenerCanalDeUsuario();
+            cargarLabelsConDatosDelCanal(dtc);
+            
+            listarVideos(sys.listarVideosDeUsuario());
+            listarListassRep(sys.listarListasDeReproduccionDeUsuario(nick));
+            listarUsuariosSeguidores(sys.listarUsuarioSeguidores());
+            listarUsuariosSeguidos(sys.listarUsuarioSeguidos());
+            
+             sys.liberarMemoriaUsuario();
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+
+        }
     }//GEN-LAST:event_lstUsuariosValueChanged
 
     private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAceptarActionPerformed
-        
+         try {
+             sys.liberarMemoriaUsuario();
+             dispose();
+        } catch (Exception e) {
+            JOptionPane.showMessageDialog(null, "Ha ocurrido un error", "Error", JOptionPane.ERROR_MESSAGE);
+        }
     }//GEN-LAST:event_btnAceptarActionPerformed
-
-
+    
+    ///////////////////////////////////////////////////////////////////////////////////////////
+    private void listarUsuarios(ArrayList<DtUsuario> ListaUsuarios){
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtUsuario it : ListaUsuarios) {
+            modelo.addElement(it.getNickname());
+        }
+        lstUsuarios.setModel(modelo);
+        
+    }
+    private void listarVideos(ArrayList<DtVideo> ListaVideos){
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtVideo it : ListaVideos) {
+            modelo.addElement(it.getNombre());
+        }
+        lstVideos.setModel(modelo);
+    }
+    private void listarListassRep(ArrayList<DtListaDeReproduccion> listaListasRep){
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtListaDeReproduccion it : listaListasRep) {
+            modelo.addElement(it.getNombre());
+        }
+        lstListaReproduccion.setModel(modelo);
+    }
+    
+    private void listarUsuariosSeguidos(ArrayList<DtUsuario> ListaUsuarios){
+        lbCantSeguidos.setText(String.valueOf(ListaUsuarios.size()));
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtUsuario it : ListaUsuarios) {
+            modelo.addElement(it.getNickname());
+        }
+        lstSeguidos.setModel(modelo);
+    }
+    private void listarUsuariosSeguidores(ArrayList<DtUsuario> ListaUsuarios){
+        DefaultListModel modelo = new DefaultListModel();
+        for (DtUsuario it : ListaUsuarios) {
+            modelo.addElement(it.getNickname());
+        }
+        lstSeguidores.setModel(modelo);
+    }
+    private void cargarLabelsConDatosDelUsuario(DtUsuario u){
+        lbCantSeguidores.setText(u.getNickname());
+        lbNombre.setText(u.getNombre());
+        lbApellido.setText(u.getApellido());
+        lbEmail.setText(u.getCorreo());
+        lbFechaN.setText(new SimpleDateFormat("dd-MM-yyyy").format(u.getFechaNacimiento()));
+        lbCantSeguidores.setText(String.valueOf(u.getCantSeguidores()));
+    }
+    private void cargarLabelsConDatosDelCanal(DtCanal c){
+        lbNombreCanal.setText(c.getNombre());
+        txtDescripcion.setText(c.getDescripcion());
+        if (c.getPrivacidad() == Privacidad.PUBLICO){
+            lbPrivacidad.setText("Publico");
+        }else{
+            lbPrivacidad.setText("Privado");
+        }
+    }
+    ///////////////////////////////////////////////////////////////////////////////////////////
+    
+    
+    
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton btnAceptar;
     private javax.swing.JLabel jLabel17;
@@ -237,12 +352,14 @@ public class frmConsultaUsuario extends javax.swing.JDialog {
     private javax.swing.JSeparator jSeparator4;
     private javax.swing.JSeparator jSeparator5;
     private javax.swing.JLabel lbApellido;
+    private javax.swing.JLabel lbCantSeguidores;
+    private javax.swing.JLabel lbCantSeguidos;
     private javax.swing.JLabel lbEmail;
     private javax.swing.JLabel lbFechaN;
+    private javax.swing.JLabel lbNickName;
     private javax.swing.JLabel lbNombre;
     private javax.swing.JLabel lbNombreCanal;
     private javax.swing.JLabel lbPrivacidad;
-    private javax.swing.JLabel lbUsuario;
     private javax.swing.JLabel lstImagen;
     private javax.swing.JList<String> lstListaReproduccion;
     private javax.swing.JList<String> lstSeguidores;
diff --git a/UyTube_aplicacion/src/Presentacion/frmInicioSesion.form b/UyTube_aplicacion/src/Presentacion/frmInicioSesion.form
index 49d7d604bf2a918c223bcf15ded1c5fbba057d12..9a8462147159489b719ec5d351cdfbd2c9b39286 100644
--- a/UyTube_aplicacion/src/Presentacion/frmInicioSesion.form
+++ b/UyTube_aplicacion/src/Presentacion/frmInicioSesion.form
@@ -61,6 +61,13 @@
               <Font name="Tahoma" size="14" style="0"/>
             </Property>
           </Properties>
+<<<<<<< HEAD
+=======
+          <Events>
+            <EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtNroEmpleadoKeyReleased"/>
+            <EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtNroEmpleadoKeyTyped"/>
+          </Events>
+>>>>>>> JuanRama
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
               <AbsoluteConstraints x="270" y="30" width="160" height="30"/>
@@ -129,6 +136,12 @@
               <Font name="Tahoma" size="14" style="0"/>
             </Property>
           </Properties>
+<<<<<<< HEAD
+=======
+          <Events>
+            <EventHandler event="keyReleased" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="txtContraseniaKeyReleased"/>
+          </Events>
+>>>>>>> JuanRama
           <Constraints>
             <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
               <AbsoluteConstraints x="270" y="80" width="160" height="30"/>
diff --git a/UyTube_aplicacion/src/Presentacion/frmInicioSesion.java b/UyTube_aplicacion/src/Presentacion/frmInicioSesion.java
index e7226decf44b335df0d5630594822e075b853e19..877397a767aa0216eed4f8a9d573a3b45256533b 100644
--- a/UyTube_aplicacion/src/Presentacion/frmInicioSesion.java
+++ b/UyTube_aplicacion/src/Presentacion/frmInicioSesion.java
@@ -1,22 +1,42 @@
 package Presentacion;
 
+import Logica.Fabrica;
+import Logica.Interfaces.IAdmin;
 import java.awt.Image;
 import javax.swing.ImageIcon;
-
+import javax.swing.JOptionPane;
 
 public class frmInicioSesion extends javax.swing.JDialog {
-
-    /** Creates new form frmInicioSesion */
+    
+    // almacena el resultado el inicio de sesion
+    boolean resultado;
+    IAdmin sys;
+        
     public frmInicioSesion(java.awt.Frame parent, boolean modal) {
         super(parent, modal);
         initComponents();
         this.setLocationRelativeTo(null);
         
+        txtNroEmpleado.setText("");
+        txtContrasenia.setText("");
+        
+        // Coloca la imagen del login
         lbImagen.setText(null);
         Image img = new ImageIcon("Imagenes/ukp.png").getImage();
         ImageIcon img2 = new ImageIcon(img.getScaledInstance(lbImagen.getWidth(), lbImagen.getHeight(), Image.SCALE_SMOOTH));
         lbImagen.setIcon(img2);
         
+        // pide la instancia de Fabrica
+        
+        Fabrica f = Fabrica.getInstancia();
+        // pide la instancia del sistema
+        sys = f.getIAdmin();
+        
+        // desactiva el boton de Iniciar
+        btnIniciar.setEnabled(false);
+        
+        // inicializa la variable en falso
+        resultado = false;
     }
 
     /** This method is called from within the constructor to
@@ -46,6 +66,14 @@ public class frmInicioSesion extends javax.swing.JDialog {
         jPanel4.add(jLabel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(160, 30, -1, -1));
 
         txtNroEmpleado.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+        txtNroEmpleado.addKeyListener(new java.awt.event.KeyAdapter() {
+            public void keyReleased(java.awt.event.KeyEvent evt) {
+                txtNroEmpleadoKeyReleased(evt);
+            }
+            public void keyTyped(java.awt.event.KeyEvent evt) {
+                txtNroEmpleadoKeyTyped(evt);
+            }
+        });
         jPanel4.add(txtNroEmpleado, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 30, 160, 30));
 
         jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
@@ -75,6 +103,11 @@ public class frmInicioSesion extends javax.swing.JDialog {
         jPanel4.add(lbImagen, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, 110, 100));
 
         txtContrasenia.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
+        txtContrasenia.addKeyListener(new java.awt.event.KeyAdapter() {
+            public void keyReleased(java.awt.event.KeyEvent evt) {
+                txtContraseniaKeyReleased(evt);
+            }
+        });
         jPanel4.add(txtContrasenia, new org.netbeans.lib.awtextra.AbsoluteConstraints(270, 80, 160, 30));
 
         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
@@ -95,12 +128,56 @@ public class frmInicioSesion extends javax.swing.JDialog {
 
     private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelarActionPerformed
         // insicar secion->cancelar
+        this.resultado = false;
+        dispose();
+
     }//GEN-LAST:event_btnCancelarActionPerformed
 
     private void btnIniciarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnIniciarActionPerformed
         //Sesion->iniciarSecion->iniciar
+        
+        int nro = Integer.parseInt(txtNroEmpleado.getText());
+        String contrasenia = txtContrasenia.getText();
+        this.resultado = sys.iniciarSesionAdministrador(nro, contrasenia);
+        
+        if (resultado){
+            dispose();
+        }else{
+            JOptionPane.showMessageDialog(null, "El número de empleado o la contraseña son incorrectos", "Error al iniciar sesión", JOptionPane.ERROR_MESSAGE);
+            txtNroEmpleado.setText("");
+            txtContrasenia.setText("");
+        }
     }//GEN-LAST:event_btnIniciarActionPerformed
 
+    private void txtNroEmpleadoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNroEmpleadoKeyTyped
+         if (!Character.isDigit(evt.getKeyChar())) {
+            getToolkit().beep();
+            evt.consume();
+        }
+    }//GEN-LAST:event_txtNroEmpleadoKeyTyped
+
+    private void txtNroEmpleadoKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtNroEmpleadoKeyReleased
+        habilitarBotonIniciar();
+    }//GEN-LAST:event_txtNroEmpleadoKeyReleased
+
+    private void txtContraseniaKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtContraseniaKeyReleased
+        habilitarBotonIniciar();
+    }//GEN-LAST:event_txtContraseniaKeyReleased
+
+    private void habilitarBotonIniciar(){
+        // Hacer OR sin short circuit
+        if (txtNroEmpleado.getText().isEmpty() || txtContrasenia.getText().isEmpty()) {
+            btnIniciar.setEnabled(false);
+        } else {
+            btnIniciar.setEnabled(true);
+        }
+    }
+    
+    
+    public boolean seInicioLaSesion(){
+        return resultado;
+    }
+    
     // Variables declaration - do not modify//GEN-BEGIN:variables
     private javax.swing.JButton btnCancelar;
     private javax.swing.JButton btnIniciar;
diff --git a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
index c6fd7b93f67929afdab78b57adc4bcfa74cc96a6..bdf484d2eab79a8453aa6785c087a7b6ee2a25bb 100644
--- a/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
+++ b/UyTube_aplicacion/src/Presentacion/frmPrincipal.java
@@ -9,22 +9,28 @@ import Presentacion.Video.*;
 import java.awt.Image;
 import java.awt.Toolkit;
 import javax.swing.ImageIcon;
-
-
+    
 public class frmPrincipal extends javax.swing.JFrame {
 
+    private boolean sesionIniciada;
+    
     public frmPrincipal() {
         initComponents();
-        
-        pnlFondo.setSize(this.getSize());
-        
+        // centra la ventana
         this.setLocationRelativeTo(null);
         
+        // carga la imagen de fondo
         this.lbFondo.setText(null);
         Image img3 = new ImageIcon("Imagenes/des.jpeg").getImage();
         ImageIcon img4 = new ImageIcon(img3.getScaledInstance(lbFondo.getWidth(), lbFondo.getHeight(), Image.SCALE_SMOOTH));
         lbFondo.setIcon(img4);
         
+        //#######  Descomentar la siguiente linea ###### //
+        //activarBarraDeMenu(false);
+        sesionIniciada = false;
+        mitCerrarSesion.setEnabled(false);
+        
+        // Carga los datos de prueba
         DatosDePrueba.cargarDatos();
     }
 
@@ -336,12 +342,27 @@ public class frmPrincipal extends javax.swing.JFrame {
 
     private void mitIniciarSesionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mitIniciarSesionActionPerformed
         //Sesion->iniciarSecion
-        new frmInicioSesion(this, true).setVisible(true);
+        
+        frmInicioSesion login = new frmInicioSesion(this, true);
+        login.setVisible(true);
+        sesionIniciada = login.seInicioLaSesion();
+        
+        if (sesionIniciada){
+            activarBarraDeMenu(true);
+        mitCerrarSesion.setEnabled(true);
+        mitIniciarSesion.setEnabled(false);
+        }else{
+            activarBarraDeMenu(false);
+        }
     }//GEN-LAST:event_mitIniciarSesionActionPerformed
 
     private void mitCerrarSesionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mitCerrarSesionActionPerformed
         //Sesion->cerrar secion
-        
+        sesionIniciada = false;
+        mitCerrarSesion.setEnabled(false);
+        mitIniciarSesion.setEnabled(true);
+        activarBarraDeMenu(false);
+
     }//GEN-LAST:event_mitCerrarSesionActionPerformed
 
     private void mitNuevoUsuarioActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mitNuevoUsuarioActionPerformed
@@ -461,6 +482,14 @@ public class frmPrincipal extends javax.swing.JFrame {
         // TODO add your handling code here:
     }//GEN-LAST:event_formPropertyChange
 
+    
+    private void activarBarraDeMenu(boolean b){
+        menuUsuario.setEnabled(b);
+        menuListaDeReproduccion.setEnabled(b);
+        menuVideo.setEnabled(b);
+        menuCategoria.setEnabled(b);
+    }
+
     /**
      * @param args the command line arguments
      */