diff --git a/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java b/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
index a79258c7cf15ad1e26d6575d9a212a11eef651bc..52d667cb540e3c7c3066595b71507f02212abcea 100644
--- a/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
+++ b/UyTube_aplicacion/src/Presentacion/DatosDePrueba.java
@@ -23,7 +23,9 @@ public class DatosDePrueba {
         sys = f.getIAdmin();
         // ahora se puede interactuar con el sistema invocando sus funciones mediante sys
         
+        cargarCategorias();
         cargarUsuariosYCanales();
+        cargarSeguidores();
         cargarVideosAUsuarios();
         cargarListasDeReproduccionAUsuarios();
         agregarVideosAListasDeReproduccion();
@@ -32,6 +34,12 @@ public class DatosDePrueba {
         
     }
     
+    private static void cargarCategorias(){
+        sys.altaCategoria("MUSICA");
+        sys.altaCategoria("DEPORTE");
+        sys.altaCategoria("GAMING");
+    }
+    
     private static void cargarUsuariosYCanales(){
         /* Plantilla de creacion de usuario:
         instance.altaUsuarioCanal(
@@ -65,6 +73,36 @@ public class DatosDePrueba {
         );
     }
     
+    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(){
         /* Plantilla de creacion de Alta Video:
         sys.seleccionarUsuario("tu nickname");
@@ -76,16 +114,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 +140,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 +165,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)
         );
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..c4cc90f17eabb483d957a2de428e9baf5e6719fe 100644
--- a/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java
+++ b/UyTube_aplicacion/src/Presentacion/Usuario/frmConsultaUsuario.java
@@ -1,12 +1,33 @@
 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);
+        
+        // obtiene la instancia de sistema
+        sys = Fabrica.getInstancia().getIAdmin();
+        
+        // lista usuarios en el JList
+        listarUsuarios();
     }
-    
+
     @SuppressWarnings("unchecked")
     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
     private void initComponents() {
@@ -27,7 +48,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 +72,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 +105,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 +116,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 +138,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 +180,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 +232,95 @@ 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 = sys.listarUsuarios();
+        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 +349,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;