Muy buen video. Pero en el ultimo java existe un problema con el método add. y al aplicar el código lo solucione de la siguiente manera: public JPanel getFondo() { return fondo; } Este código lo implemente en la segunda ventana la que queremos mostrar dentro de otra, y la variable fondo representa el panel principal el que contiene todos nuestros componentes. La idea es obtener exclusivamente el panel mas no toda la ventana. (Todos los componentes funcionan perfectamente como dato) Luego, en la ventana principal en la que queremos cargar el panel de otra ventana puse lo siguiente private void showPanel(JPanel p){ p.setSize(460, 420); p.setLocation(0, 0); content.removeAll(); content.add(p, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,0,-1,-1)); content.revalidate(); content.repaint(); } y cuando ya empleo el codigo en el constructor public Interfaz() { initComponents(); Ventana2 b = new Ventana2(); showPanel(b.getFondo()); } De esta manera el código funciona, al menos en mi caso. Espero les sea útil!
Jajaja, me alegra que el video los haya salvado! A veces hay que bajar un poco la velocidad, pero lo importante es que les sirvió. ¡Gracias por comentar! Aquí estamos para seguir aprendiendo juntos. Si alguna vez necesitan más apoyo o aclarar algo, no duden en preguntar. 🙌
Hola! A los 3:25 minutos del video el BorderLayout me tira error. Dice "cannot find symbol". Si lo importo tira una excepción... Seguí los pasos tal cual los hiciste vos para practicar y no hay caso, qué puede ser?
Estoy en la Universidad y gracias a ti no hare interfaces feas :D, muchas gracias por la informacion me hacia mucha falta, soy suscriptor desde tiempo, saludos. Espero y sigas subiendo contenido, ya que es de mucha ayuda
Gracias Anthony por tus videos explicativos y Felicitaciones por tu valioso aporte a quienes queremos aprender a crecer en este mundo digital. Ojala hermano si te fuera posible continuaras con tus videos y compartir el conocimiento, esto es de grandes.
Saludos y gracias por el video compañero, me suscribo y le dejo su like, para los que tienen problemas con el metodo add(), revisen que no esten tratando de llamar un Jframe dentro de un Jpanel, con Netbeans15 que estoy usando estaba cometiendo ese error, asi que migre todo el contenido de mis vistas hechas en Jframe a vistas sobre Jpanel y asi me funciona perfectamente. Para resumir... Solo vamos a crear una vista principal sobre Jframe y las demas vistas que vamos a traer para mostrar en la vista principal deben estar sobre un proyecto Jpanel... Espero les sirva esta info.
como puedo hacer si cuando pongo la segunda linea del programa me marca error y me dice "package p1 does no exist" espero me puedas ayudar, es para un proyecto y ya no se que hacer
eh muchismas gracias parcero se me vino la idea y tenia mas o menos idea de como hacerlo y no me acordaba y ya me acorde de nuevo,psdt no queria hacerlo de nuevo con el tabedd pane si no algo mas bonitos con botones configurados
Gracias excelente video, quisiera que en otro video explicaras como hacer una gui parecida a la que utiliza netbeans con jtree, paleta y todo lo demas , muchas gracias.
Saludos cordiales excelente aporte. ¿En el caso que quisiera utilizar "JFrame" y no "JPanel", ¿como lo haría? tengo en mente realizar un menú dinámico como los que se están utilizando en la actualidad, ya que con el "Tabbed Pane" no se ve muy bien.
Oye amigo, y como logras hacer, que la interfaz se vea mas "moderna", o mejor dicho, como logras mejorar la calidad estetica de la interfaz que la que ya viene establecida en las herramientas de un jframe
hay alguna manera de cambiar de paneles aun si los botones no estan dentro de ese panel a cambiar? intento seguir tus pasos pero tengo problemas a la hora de llamar content para los botones.
Se me ocurre que podrías hacer static el método de la clase principal que pinta el jpanel a mostrar. De tal forma que, desde tus clases secundarias puedas mandarlo a llamar también mostrando el jpanel de tu interés
Lo ideal sería que tuvieras tu contenido principal separado en una clase independiente, tal cual como en el video. Ya si quieres volver a esa vista, simplemente la mandas a llamar como si fuera cualquier otra página más
@@AnthonyZabs @Anthony Zabs Gracias pibe por los consejos y tus videos super utiles, por ultimo tengo una pequeña pregunta, adentro de los eventos de los votones se crea siempre un objeto tipo Jpanel que enviamos a nuestro metodo, entonces cada vez que cambiemos de panel se estarà creando un nuevo objeto en memoria que se quedarà en el limbo? en mi caso cree el panel 1 y 2 como globales para llamarlos y no estar creando, estoy errado o tiene sentido lo que hice?
Cuando se trabaja con memoria dinámica, normalmente se destruye el objeto cuando el proceso que lo declaró termina. No debería causarte mayor problema trabajarlo así, imagina que tienes cientos de vistas, sería muy lioso tener que declarar todas globales y estarlas administrando conforme al uso. Si quieres optimizar lo máximo posible entonces sería mejor crear una Clase Genérica para todas tus vistas, de modo que hereden de ella y tengas un solo objeto global en la cual puedas instanciar cualquier clase (vista).
Hola, estoy usando MVC y mi problema es que el actionEvent en el Controlador no reconoce los botones dentro del JPanel pero si los del JFrame que estan en la "misma" ventana. Podrias explicar como solucionar eso?
No tengo error de sintaxis, sin embargo, cuando lo corro me tira un error raro que no me apare si quitó del Contento.removrAll(); para abajo :c en el OutPut me dice... Exeption in thread "AWT-EventQueue-0" java.lang.IlegalArgumentExeption: adding a Window to a container
-Cómo hago para que luego que cambie de JPanel, el panel anterior se elimine de la ejecución y se vuelva a crear únicamente si yo presiono el botón para volver a cargarlo para que de esta forma se ejecute el constructor de ese jPanel? Gracias- || SOLUCIONADO. Modifiqué el código e hice que en el evento de cada botón me instancie un contenedor con ese jPanel. :)
@@johanaldana914 Prueba dejando el JPanel contenedor como FreeDesign y los paneles a cargar como AbsoluteLayout, si te sigue saliendo error compártelo para ver que error es.
Asegúrense de que la ventana principal este en JFrame Form, mientras que las otras paginas (pagina1,pagina2) estén en JPanel Form, supongo que es un cambio de versión, ya que el que tengo es IDE 21
1 duda. 1.- En vez de usar botones puedo usar paneles con un label y este label en cuestion le daria el evento de mouse clicked, dentro de ahí iria mi codigo ? 2.- CONTETN es como el nombro al panel donde se mostraran los paneles VEAN EL 1:57
Exception in thread AWT-EventQueue-0 java.lang.IllegalArgumentException: adding a window to a container , a alguien mas le aparece este error? ayudaaaa :(
Bro te agradezco mucho por el contenido que haces, pero tengo un problema: al insertar un jpanel dentro de otro lo puedo hacer pero el jpanel hijo queda muy pequeño a comparación del jpanel padre a pesar de que ambos tienen el mismo tamaño
No, sin embargo el primer JPanel se dejó en el constructor para que cuando la aplicación inicie, a la vez cree la instancia del p1 y lo muestre dentro del content. No hay ningún problema si encuentras alternativas de crear esos objetos fuera.
Me sale un error en el add., puse todo tal cual El error es éste "Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container".
Bro muy buen contenido, gracias por compartir. Por cierto, donde aprendiste a aplicar los conceptos de material design? algun libro en particular que recomiendes? gracias de antemano
Honestamente no te sabría recomendar algún libro en particular, sin embargo puedes echarle un vistazo a la página de material.io/design. Describen muchos conceptos del diseño material en general, es decir, no aplicado específicamente a Java pero te puedes familiarizar más con el diseño y hacer tus propios diseños con las herramientas que Java te ofrezca. Ya está más en tu creatividad que en otra cosa ;). ¡Gracias por el comentario!
Hola. Si seteando tus estilos de LookAndFeel desde tu clase main no afecta a tus ventanas secundarias, entonces yo lo que haría sería setear los estilos en cada clase de las ventanas secundarias también. Desconozco si existe alguna forma más adecuada para este caso. Saludos.
Tengo una duda, quiero llamar otro panel, pero dentro del panel que inicialicé, ¿sabes si es posible hacerlo? E intentado de muchas formas, pero no he podido hacerlo...
@@AXELELIUHERRERASANCHEZ Entiendo, para que puedas reemplazar un JPanel dentro de content desde un botón que se encuentra dentro de JPanel1, necesitas asegurarte de que el botón de JPanel1 tenga acceso al método ShowPanel, ya que el método es parte de la clase que contiene el JFrame (Dashboard). Esto lo puedes lograr pasando por parámetro una referencia de la clase del JFrame dentro de JPanel1 cuando instancies el objeto de esa clase. // Añadir el JPanel1 dentro del content JPanel1 panel1 = new JPanel1(this); // Pasas la referencia del JFrame a JPanel1 ShowPanel(panel1); Y dentro del código de la clase del JPanel1 recibirías esa referencia como: public JPanel1(Dashboard dashboard) { // Y dentro del método del botón algo como: JPanel2 panel2 = new JPanel2(); // Suponiendo que JPanel2 es otro JPanel dashboard.ShowPanel(panel2); // Llamar el método ShowPanel del JFrame } Espero que te sea de ayuda. Saludos!
Hola, saludos desde Honduras, tus videos me sirvieron mucho para el desarrollo de un proyecto, pero tengo una consulta, puede llamar a un panel2 con un objeto (botón o panel simulando un botón) que esté dentro del panel1 y que el panel2 ocupe el lugar del panel1, no se si me explico bien
Sí por supuesto que se puede. Yo bien pude colocar los botones que muestra cada panel dentro del Panel1 y sin problema mostraría el Panel2 en el lugar del Panel1. La lógica y código detrás para lograrlo es el mismo.
Hola, tengo un problema, al apretar los botones me cambian de pantalla, pero al sacar el cursor aparecen nuevamente y me interesa que desaparezcan, que puedo hacer, soy nuevo en esto y no entiendo mucho :(
Todo bien, pero tengo una duda. Veo que cada vez que se presiona el boton se instancia un panel, eso quiere decir que cada vez que demos clic en un boton se creara un nuevo objeto y eso ocuparia memoria RAM. O me equivoco? consulto esto porque quiero hacer algo optimo
Buena observación. Aunque en este caso no sucedería ya que la instancia del objeto se hace temporalmente mientras existe el evento. Si declaramos las variables de los paneles de manera global, sí se quedarían instanciadas pero aún así no pasaría nada porque cada que le das clic, "se limpia" la instancia reasignándole una nueva destruyendo la anterior. Lo que igual podrías hacer es crear una especie de clase genérica en donde puedas instancias cualquier "Page" para que reutilices esa misma variable y mostrarla siempre en el evento de cada botón reasignando una clase distinta a la cual quieres mostrar. Saludos.
Hola. En mi video sobre cómo hacer interfaces gráficas en java explico el concepto del diseño responsivo. Parte de eso te ayudará justamente a que cuando maximices tus programas, el diseño se adapte, incluyendo lo paneles hijos. Pero sí, quizás prepare un video más específico a ese punto qué mencionas. Anotado!
@@AnthonyZabs Muchas gracias por responderme, ¿te refieres al video Deja de hacer interfaces feas?, lo veré a ver si es ese, seria genial que prepararas un video en específico busque mucho por TH-cam y no encontré ninguno y eso que termine en video indios y chinos xd, en fin espero que tengas un buen día.
Sí, justo a ese me refiero. Hay una parte donde menciono lo del diseño responsivo para hacer qué los paneles se adapten al maximizar o cambiar el tamaño de la ventana del jframe. Espero te sirva. Saludos!
Tengo un problema al agregar un JdesktopPanel, cuando lo compilo se pone todo su fondo blanco y no el azul predeterminado, sabes de casualidad a que se deba esto?
Puede ser debido a la configuración de la apariencia (look and Feel) de la aplicación. La apariencia predeterminada de Java Swing es el tema Metal, el cual utiliza un fondo blanco para las ventanas internas. Intenta cambiar el color con código como: JDesktopPane desktop = JDesktopPane(); desktop.setBackground(Color.BLUE);
Igual, simplemente en las instrucciones de guardado, edición y eliminado, en lugar de llevar el código que interactua con la base de datos, tendrías que trabajarlo todo sobre estructuras como listas, arreglos o diccionarios. Todo lo manejarías en la caché del programa pero si no lo almacenas en ninguna base de datos como mysql, al cerrar el programa todo se va a perder
segui los pasos tal cual y no me funciono, me aparecio este error Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
Hola, me puedes compartir más detalle sobre en qué línea te marca el error y tu código. Si puedes por un repositorio de github o un link a un pastebin, te podría ayudar mejor. Saludos!
Si...me di cuenta después que puse el comentario...pero por cierto después me salió otro error con unos botones, no he podido resolverlo aún, es éste: exception in thread "AWT-EventQueue-0" Java.lang.NullPointerException: Cannot invoke "controlador.Coordinador.mostrarRegistroUsua()" beacuse "This.miCoordinador" is null La situación es que antes funcionaba y ahora no se por que no
Ese error es porque al parecer no estás inicializando el objeto miCoordinador, y estás intentando usar un método del mismo, pero al no estar inicializado, pasa como nulo y por eso esa excepción. Revisa a detalle tu código y debuguea el contenido de ese objeto
Mano ya pudo hacer que se viera pero me da el mismo error al intentar usar esa pestaña, entonces lo intento solucionar de la misma forma y ya no deja funciona la aplicación y da otro error... Ya no de que hacer
Hola, excelente video, te animo a que continúes haciendo más contenido así. Por otra parte, me podrías decir como puedo hacer para controlar los eventos de cada panel, es decir, tendría que crear un controlador para cada panel? pero si fuera así como lo hago ? Gracias de antemano
Así es, ya dentro de cada JPanel te encargas de meter los controles que necesites (botones, labels, etc), y ahí mismo generas sus eventos como lo hicimos en el panel principal.
muy bueno tu video amigo, me ayudo mucho, ando haciendolo pero con formularios, textfields, botones internos, pero no me deja ingresar nada por textfield, alguna ayuda :(
Falta de Tiempo D: Pero ya me encuentro terminando de cocinar el siguiente video, que es una mejora a este tipo de programas. Espero esta semana tenerlo listo ;)
ahora imagina que deseo cambiar el panel desde el jpanel2 a jpanel1 como lo haria, osea que el boton de cambio ya no este en panel principal sino en un panel secundario
Se me ocurre que podrías hacer static el método de la clase principal que pinta el jpanel a mostrar. De tal forma que, desde tus clases secundarias puedas mandarlo a llamar también mostrando el jpanel de tu interés
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container Ayudaaa. No sé como solucionar ese error. :c Hice todo como está en el video.
@@AnthonyZabs bueno explico rápido, el Java swing de intellij es muy diferente al de netBeans entonces no encuentro la forma de hacer que aparezcan diferentes Jpanel dentro del mismo Jframe
O sea básicamente buscas hacer esta misma implementación usando Intellij. Vaya, necesitaría investigar de mi lado porque como te comento, no tengo mucha experiencia con Intellij 😬. Pero de que se debe poder, se debe poder. Si encuentro algo relevante te hago saber y espero también puedas encontrar algo!
@@AnthonyZabs muchas gracias, yo quiero creer que si se puede, pero casi no hay tutoriales con intellij solamente en netBeans pero como te comento que el Java swing es muy distinto, con decir que en intellij no sé sabe las medidas del Jpanel
Muy buen video. Pero en el ultimo java existe un problema con el método add. y al aplicar el código lo solucione de la siguiente manera:
public JPanel getFondo() {
return fondo;
}
Este código lo implemente en la segunda ventana la que queremos mostrar dentro de otra, y la variable fondo representa el panel principal el que contiene todos nuestros componentes. La idea es obtener exclusivamente el panel mas no toda la ventana. (Todos los componentes funcionan perfectamente como dato)
Luego, en la ventana principal en la que queremos cargar el panel de otra ventana puse lo siguiente
private void showPanel(JPanel p){
p.setSize(460, 420);
p.setLocation(0, 0);
content.removeAll();
content.add(p, new org.netbeans.lib.awtextra.AbsoluteConstraints(0,0,-1,-1));
content.revalidate();
content.repaint();
}
y cuando ya empleo el codigo en el constructor
public Interfaz() {
initComponents();
Ventana2 b = new Ventana2();
showPanel(b.getFondo());
}
De esta manera el código funciona, al menos en mi caso. Espero les sea útil!
Muchas gracias bro, me sirvio en netbeans 12.4, saludos :D
Solo tengo un problema no me encuentra el content.add dice que no existe
Amigo, content es el nombre de tu JPanel principal. En el minuto 1:58 menciono qué yo lo renombro de esa forma.
Bueno lo terminé borrando y parece que funciona sin ningún problema
Amigo pero dònde pusiste eso, en què parte?
YO PIDIENDO ESTO A CHATGPT Y ME SACÓ CANAS VERDES,, me salvaste gracias por tu aporte, muy rapido pero se entiende bajandole la velocidad xD
A mí también me saco canas verdes el chat gpt, pero aquí me enseñaron bien
Jajaja, me alegra que el video los haya salvado! A veces hay que bajar un poco la velocidad, pero lo importante es que les sirvió. ¡Gracias por comentar! Aquí estamos para seguir aprendiendo juntos. Si alguna vez necesitan más apoyo o aclarar algo, no duden en preguntar. 🙌
muchas gracias era lo que necesitaba para hacer un menu lateral, muy bien explicado y en corto tiempo sigue asi
Hola! A los 3:25 minutos del video el BorderLayout me tira error. Dice "cannot find symbol". Si lo importo tira una excepción... Seguí los pasos tal cual los hiciste vos para practicar y no hay caso, qué puede ser?
Estoy en la Universidad y gracias a ti no hare interfaces feas :D, muchas gracias por la informacion me hacia mucha falta, soy suscriptor desde tiempo, saludos.
Espero y sigas subiendo contenido, ya que es de mucha ayuda
Gracias por tus comentarios y por el apoyo desde hace tiempo. ¡Saludos amigo!
Gracias Anthony por tus videos explicativos y Felicitaciones por tu valioso aporte a quienes queremos aprender a crecer en este mundo digital.
Ojala hermano si te fuera posible continuaras con tus videos y compartir el conocimiento, esto es de grandes.
¡Muchas gracias por el comentario Edgar! Lo estamos considerando, gracias por la motivación extra :)
Muchas gracias, tengo que entregar un proyecto y no sabia como hacer un menú , y gracias al video ya se
Me alegro que te haya servido. ¡Espero que hayas sacado buena nota!
Gracias. Excelente explicacion, resolviste mis dudas en instantes
Amo tus vídeos, sigue así. Vídeo que veo, elemento que comprendo mejor de JAVA. Gracias
¡Muchas gracias por el comentario! Me da gusto saber que te sean de ayuda. Saludos :)
esperando a que nos enseñes a realizar proyectos profesionales
Saludos y gracias por el video compañero, me suscribo y le dejo su like, para los que tienen problemas con el metodo add(), revisen que no esten tratando de llamar un Jframe dentro de un Jpanel, con Netbeans15 que estoy usando estaba cometiendo ese error, asi que migre todo el contenido de mis vistas hechas en Jframe a vistas sobre Jpanel y asi me funciona perfectamente.
Para resumir... Solo vamos a crear una vista principal sobre Jframe y las demas vistas que vamos a traer para mostrar en la vista principal deben estar sobre un proyecto Jpanel... Espero les sirva esta info.
Gracias!! Me sirvió
como puedo hacer si cuando pongo la segunda linea del programa me marca error y me dice "package p1 does no exist" espero me puedas ayudar, es para un proyecto y ya no se que hacer
Este video me ayudó mucho sigue subiendo más crack!
¡Muchas gracias! :)
Me acabas de dar una solución que llevaba buscando varios dias, gracias
¡Me alegra mucho saber que te ha servido! :)
No lo he visto pero ya le di like 👌
¡Muchas gracias por el apoyo! :)
eres un maldito crack me suscribo y de verdad espero mucho contenido en este canal
¡Muchas gracias! Comentarios así me motivan a seguir trayendo contenido :)
Muchas gracias por tu metodo, funciona correctamente, un sub más
Trabajo con C#, usando WinForms y me salvaste igualmente.
Muchísimas gracias! Ahora mí aplicación está muchísimo mejor 💪🏻🌸
Gracias, es la mejor explicación
Muy bueno tu explicación amigo , realiza más vídeos sobre Java y NetBeans, es de gran ayuda .
Para los estudiantes.🤝👍👍
Muchas gracias por el comentario amigo. Por supuesto que seguiremos trayendo más contenido :)
Saludo desde Brasil, Gracias Hermano
¡Saludos hasta Brasil desde Mexico! Gracias a ti bro :)
Bendito comentario.
Gracias amigo, "nos has salvado, estamos agradecidos" , te daremos lo créditos en nuestro proyecto de la uni
Gracias amigo :)
Si les aparece algun problema, solo deben cambiar el JFrame por un JPanel y ya.
Mi heroeeeeeeee
eh muchismas gracias parcero se me vino la idea y tenia mas o menos idea de como hacerlo y no me acordaba y ya me acorde de nuevo,psdt no queria hacerlo de nuevo con el tabedd pane si no algo mas bonitos con botones configurados
Me da gusto de que te haya servido amigo.¡Saludos! :)
Gracias excelente video, quisiera que en otro video explicaras como hacer una gui parecida a la que utiliza netbeans con jtree, paleta y todo lo demas , muchas gracias.
Saludos cordiales excelente aporte.
¿En el caso que quisiera utilizar "JFrame" y no "JPanel", ¿como lo haría? tengo en mente realizar un menú dinámico como los que se están utilizando en la actualidad, ya que con el "Tabbed Pane" no se ve muy bien.
Oye amigo, y como logras hacer, que la interfaz se vea mas "moderna", o mejor dicho, como logras mejorar la calidad estetica de la interfaz que la que ya viene establecida en las herramientas de un jframe
Justo en este video explico cómo :)
th-cam.com/video/LdBl0th_U_Q/w-d-xo.html
increíbles videos amigo, espero subas más contenido
Increíble amo programar gracias
Hermano gracias por compartir tu conocimiento.
Un gusto amigo. Muchas gracias por comentar. ¡Saludos!
Muy buen video ... Me ayudó de mucho
Excelente! Me funcionó todo 👍Tienes un nuevo like 😃👌
Gracias! :)
Excelente explicacion, buen aporte
¡Gracias!
Hola que tal, se le puede poner una imagen de entrada al panel principal donde se van a cambiar los jpanel?
Excelente explicación 10/10
¡Muchas gracias! :)
asi me gustan directo al punto gracias bro
Gracias a ti por el comentario :)
Este video es excelente muchas gracias
hay alguna manera de cambiar de paneles aun si los botones no estan dentro de ese panel a cambiar? intento seguir tus pasos pero tengo problemas a la hora de llamar content para los botones.
Se me ocurre que podrías hacer static el método de la clase principal que pinta el jpanel a mostrar. De tal forma que, desde tus clases secundarias puedas mandarlo a llamar también mostrando el jpanel de tu interés
y si me quiero devolver al panel principal que creaste al comienzo?, provè pasando content al metodo de mostrar pero saliò error
Lo ideal sería que tuvieras tu contenido principal separado en una clase independiente, tal cual como en el video. Ya si quieres volver a esa vista, simplemente la mandas a llamar como si fuera cualquier otra página más
@@AnthonyZabs @Anthony Zabs Gracias pibe por los consejos y tus videos super utiles, por ultimo tengo una pequeña pregunta, adentro de los eventos de los votones se crea siempre un objeto tipo Jpanel que enviamos a nuestro metodo, entonces cada vez que cambiemos de panel se estarà creando un nuevo objeto en memoria que se quedarà en el limbo? en mi caso cree el panel 1 y 2 como globales para llamarlos y no estar creando, estoy errado o tiene sentido lo que hice?
Cuando se trabaja con memoria dinámica, normalmente se destruye el objeto cuando el proceso que lo declaró termina. No debería causarte mayor problema trabajarlo así, imagina que tienes cientos de vistas, sería muy lioso tener que declarar todas globales y estarlas administrando conforme al uso. Si quieres optimizar lo máximo posible entonces sería mejor crear una Clase Genérica para todas tus vistas, de modo que hereden de ella y tengas un solo objeto global en la cual puedas instanciar cualquier clase (vista).
muchas gracias, me sirvió mucho.
Hola, estoy usando MVC y mi problema es que el actionEvent en el Controlador no reconoce los botones dentro del JPanel pero si los del JFrame que estan en la "misma" ventana. Podrias explicar como solucionar eso?
No tengo error de sintaxis, sin embargo, cuando lo corro me tira un error raro que no me apare si quitó del Contento.removrAll(); para abajo :c
en el OutPut me dice...
Exeption in thread "AWT-EventQueue-0" java.lang.IlegalArgumentExeption: adding a Window to a container
¿Ya intentaste la solución que compartieron en el comentario anclado?
-Cómo hago para que luego que cambie de JPanel, el panel anterior se elimine de la ejecución y se vuelva a crear únicamente si yo presiono el botón para volver a cargarlo para que de esta forma se ejecute el constructor de ese jPanel? Gracias- || SOLUCIONADO. Modifiqué el código e hice que en el evento de cada botón me instancie un contenedor con ese jPanel. :)
Para los que les dio error siguiendo todos los pasos del video solo tienen que cambiar el setLayout de los JPanel a FreeDesign, saludos.
Ya lo hice y tengo error
¿Qué error?
@@johanaldana914 Prueba dejando el JPanel contenedor como FreeDesign y los paneles a cargar como AbsoluteLayout, si te sigue saliendo error compártelo para ver que error es.
Asegúrense de que la ventana principal este en JFrame Form, mientras que las otras paginas (pagina1,pagina2) estén en JPanel Form, supongo que es un cambio de versión, ya que el que tengo es IDE 21
me da error con la palabara content y no solo en el add si no en todos
Quizás olvidaste renombrar tu JPanel como "content"
1 duda.
1.- En vez de usar botones puedo usar paneles con un label y este label en cuestion le daria el evento de mouse clicked, dentro de ahí iria mi codigo ?
2.- CONTETN es como el nombro al panel donde se mostraran los paneles VEAN EL 1:57
1. Sí, totalmente, de hecho en mi video sobre interfaces feas en Java así es como hago los botones para ese programa.
2. ¡Así es!
Exception in thread AWT-EventQueue-0 java.lang.IllegalArgumentException: adding a window to a container , a alguien mas le aparece este error? ayudaaaa :(
tambien tengo el mismo error
¿Probaron con la solución del comentario fijado?
¿Lo solucionaron?, tengo el mismo problema.
Buen video pero, A mi me sale error al ejecutar, estoy con el netbeanns 8.2 alguna solución que se pueda dar?
Por favor comparte más detalles de tu error para poderte apoyar amigo. Un log sería de mucha utilidad.
Bro te agradezco mucho por el contenido que haces, pero tengo un problema: al insertar un jpanel dentro de otro lo puedo hacer pero el jpanel hijo queda muy pequeño a comparación del jpanel padre a pesar de que ambos tienen el mismo tamaño
Gracias, funciona perfecto.
Hay alguna diferencia de crear los objetos p1 y p2 fuera del constructor?
No, sin embargo el primer JPanel se dejó en el constructor para que cuando la aplicación inicie, a la vez cree la instancia del p1 y lo muestre dentro del content.
No hay ningún problema si encuentras alternativas de crear esos objetos fuera.
Me sale un error en el add., puse todo tal cual
El error es éste "Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container".
¿Ya probaste con la solución que propusieron en el comentario anclado?
alguien ha tenido errores con el jtexfield, no me lo actualiza y no se por que si yo lo utilizo como con un jframe normal
excelente muchas gracias,
Bro muy buen contenido, gracias por compartir. Por cierto, donde aprendiste a aplicar los conceptos de material design? algun libro en particular que recomiendes? gracias de antemano
Honestamente no te sabría recomendar algún libro en particular, sin embargo puedes echarle un vistazo a la página de material.io/design. Describen muchos conceptos del diseño material en general, es decir, no aplicado específicamente a Java pero te puedes familiarizar más con el diseño y hacer tus propios diseños con las herramientas que Java te ofrezca. Ya está más en tu creatividad que en otra cosa ;). ¡Gracias por el comentario!
yo lo tengo como en el video pero aun asi no me muestra en el contenido? puede hacer alguna otra solucion?
Hola, ¿te sale algún error en especifico?
Hola como le harias para que las ventanas secundarias se muestren con el LookAndFeel que les he puesto....gracias de antemano
Hola. Si seteando tus estilos de LookAndFeel desde tu clase main no afecta a tus ventanas secundarias, entonces yo lo que haría sería setear los estilos en cada clase de las ventanas secundarias también. Desconozco si existe alguna forma más adecuada para este caso. Saludos.
@@AnthonyZabs Muchas gracias lo intentaré.
Tengo una duda, quiero llamar otro panel, pero dentro del panel que inicialicé, ¿sabes si es posible hacerlo? E intentado de muchas formas, pero no he podido hacerlo...
Déjame ver si entendí bien. ¿Si lo ponemos como en un orden jerárquico quedaría como algo así?
Jframe
Jpanel
Jpanel
@@AnthonyZabs No, me refería a que desde, por ejemplo: Tengo un boton en el panel 1 que también pueda llamar al panel 2 y sustituir al panel 1.
@@AXELELIUHERRERASANCHEZ Entiendo, para que puedas reemplazar un JPanel dentro de content desde un botón que se encuentra dentro de JPanel1, necesitas asegurarte de que el botón de JPanel1 tenga acceso al método ShowPanel, ya que el método es parte de la clase que contiene el JFrame (Dashboard).
Esto lo puedes lograr pasando por parámetro una referencia de la clase del JFrame dentro de JPanel1 cuando instancies el objeto de esa clase.
// Añadir el JPanel1 dentro del content
JPanel1 panel1 = new JPanel1(this); // Pasas la referencia del JFrame a JPanel1
ShowPanel(panel1);
Y dentro del código de la clase del JPanel1 recibirías esa referencia como:
public JPanel1(Dashboard dashboard) {
// Y dentro del método del botón algo como:
JPanel2 panel2 = new JPanel2(); // Suponiendo que JPanel2 es otro JPanel
dashboard.ShowPanel(panel2); // Llamar el método ShowPanel del JFrame
}
Espero que te sea de ayuda. Saludos!
Alguien ayudemem quiero que un boton de un jpanel q se ejecuta en el jpconten ejecute ptro jpanel en el mismo jpconten 🙏🥺
Tengo curiosidad, puedo poner un botón dentro de ese panel ?
Por supuesto, puedes poner lo que tú quieras dentro de cada panel, es la idea.
Hola, saludos desde Honduras, tus videos me sirvieron mucho para el desarrollo de un proyecto, pero tengo una consulta, puede llamar a un panel2 con un objeto (botón o panel simulando un botón) que esté dentro del panel1 y que el panel2 ocupe el lugar del panel1, no se si me explico bien
Sí por supuesto que se puede. Yo bien pude colocar los botones que muestra cada panel dentro del Panel1 y sin problema mostraría el Panel2 en el lugar del Panel1. La lógica y código detrás para lograrlo es el mismo.
Buen video, gracias
Gracias a ti por el comentario. Saludos!
Hola, tengo un problema, al apretar los botones me cambian de pantalla, pero al sacar el cursor aparecen nuevamente y me interesa que desaparezcan, que puedo hacer, soy nuevo en esto y no entiendo mucho :(
¿Al sacar el cursor de donde? ¿No le habrás puesto un evento de Mouse OnExit qué esté haciendo ese comportamiento?
Todo bien, pero tengo una duda. Veo que cada vez que se presiona el boton se instancia un panel, eso quiere decir que cada vez que demos clic en un boton se creara un nuevo objeto y eso ocuparia memoria RAM. O me equivoco? consulto esto porque quiero hacer algo optimo
Buena observación. Aunque en este caso no sucedería ya que la instancia del objeto se hace temporalmente mientras existe el evento. Si declaramos las variables de los paneles de manera global, sí se quedarían instanciadas pero aún así no pasaría nada porque cada que le das clic, "se limpia" la instancia reasignándole una nueva destruyendo la anterior. Lo que igual podrías hacer es crear una especie de clase genérica en donde puedas instancias cualquier "Page" para que reutilices esa misma variable y mostrarla siempre en el evento de cada botón reasignando una clase distinta a la cual quieres mostrar.
Saludos.
Hola, ¿Puedes hace un video de como hacer para cuando maximice el JFrame cuando lo ejecuto el los paneles se centren y no queden en una esquina?
Hola. En mi video sobre cómo hacer interfaces gráficas en java explico el concepto del diseño responsivo. Parte de eso te ayudará justamente a que cuando maximices tus programas, el diseño se adapte, incluyendo lo paneles hijos. Pero sí, quizás prepare un video más específico a ese punto qué mencionas. Anotado!
@@AnthonyZabs Muchas gracias por responderme, ¿te refieres al video Deja de hacer interfaces feas?, lo veré a ver si es ese, seria genial que prepararas un video en específico busque mucho por TH-cam y no encontré ninguno y eso que termine en video indios y chinos xd, en fin espero que tengas un buen día.
Sí, justo a ese me refiero. Hay una parte donde menciono lo del diseño responsivo para hacer qué los paneles se adapten al maximizar o cambiar el tamaño de la ventana del jframe. Espero te sirva. Saludos!
Tengo un problema al agregar un JdesktopPanel, cuando lo compilo se pone todo su fondo blanco y no el azul predeterminado, sabes de casualidad a que se deba esto?
Puede ser debido a la configuración de la apariencia (look and Feel) de la aplicación. La apariencia predeterminada de Java Swing es el tema Metal, el cual utiliza un fondo blanco para las ventanas internas.
Intenta cambiar el color con código como:
JDesktopPane desktop = JDesktopPane();
desktop.setBackground(Color.BLUE);
Si uno quiere hacer algo como el menu de la biblioteca pero sin mysql como seria?
Igual, simplemente en las instrucciones de guardado, edición y eliminado, en lugar de llevar el código que interactua con la base de datos, tendrías que trabajarlo todo sobre estructuras como listas, arreglos o diccionarios.
Todo lo manejarías en la caché del programa pero si no lo almacenas en ninguna base de datos como mysql, al cerrar el programa todo se va a perder
yo solo tengo una duda, esto se puede hacer en NetBeans IDE 8.2 :((??
Sí se debería poder, igual te recomiendo usar las versiones más actualizadas, el IDE es independiente a tu versión de Java
hay alguna forma de mejorar el aspecto de las tablas..ya que se ven feitas(orribles).. he intentado montar Jeditext con html.. pero es muy tedioso.
¿Has intentado usando algún Look and Feel? No estoy seguro si cambie el aspecto a las tablas igualmente.
Gracias te amo wey
hola como puedo hacer que el panel se ajuste a la jframe
En la parte del setSize() le indicas el tamaño del panel para que coincida con la de tu jFrame. ¡Saludos!
segui los pasos tal cual y no me funciono, me aparecio este error Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
Hola, me puedes compartir más detalle sobre en qué línea te marca el error y tu código. Si puedes por un repositorio de github o un link a un pastebin, te podría ayudar mejor. Saludos!
Tengo el mismo fallo
Una pregunta en la parte de que importas la clase Pagel, podrías decirme cual clase es esa...que no la logro importar...
Page1, vendría siendo el nombre de tu jpanel qué quieres mostrar, en mi caso así lo nombré.
Si...me di cuenta después que puse el comentario...pero por cierto después me salió otro error con unos botones, no he podido resolverlo aún, es éste: exception in thread "AWT-EventQueue-0" Java.lang.NullPointerException: Cannot invoke "controlador.Coordinador.mostrarRegistroUsua()" beacuse "This.miCoordinador" is null
La situación es que antes funcionaba y ahora no se por que no
Ese error es porque al parecer no estás inicializando el objeto miCoordinador, y estás intentando usar un método del mismo, pero al no estar inicializado, pasa como nulo y por eso esa excepción. Revisa a detalle tu código y debuguea el contenido de ese objeto
Lo probaré, gracias
Mano ya pudo hacer que se viera pero me da el mismo error al intentar usar esa pestaña, entonces lo intento solucionar de la misma forma y ya no deja funciona la aplicación y da otro error... Ya no de que hacer
En el caso de que marca error en la parte de .add(v, BorderLayout.CENTER); ¿
como se soluciona?
Borra la linea: setLocation(0, 0)
Reemplaza el método add() con: .add(paneDeReemplazo, new AbsoluteConstraints(0,0,-1,-1))
@@AnthonyZabs Gracias
No se por que cuando ejecuto no se ve e diseño del panel😢
¿usas algún LookAndFeel o a qué diseño te refieres?
miiil Gracias..
no lo pude ejecutar me dio error demasiadas veces lo intente al parecer el problema esta con el BorderLayout
¿Podrías compartir el mensaje de error para poderte brindar mejor ayuda por favor? Saludos
hola podrías explicar como mejorar un jtable estéticamente
Claro, lo tomaré en cuenta para un próximo video :)
Podrías hacer más o menos el mismo vídeo pero con botones de 'Siguiente' y 'Atrás', he pensado hacerlo con un array pero no consigo verlo claro aún.
Es buen tema para un video. ¿Te refieres a una paginación para un listado de datos?
Me da error en la parte de content.add cuando le doy al boton, intente de todo. Alguna solucion?
¿Qué mensaje de error te sale? Recuerda que "content" es el nombre de tu JPanel principal. Renombra tu JPanel principal a "content".
@@AnthonyZabs ya lo pude hace amigo, era por no cambiarle el nombre al JPanel, gracias.
Crack!
Hola, excelente video, te animo a que continúes haciendo más contenido así. Por otra parte, me podrías decir como puedo hacer para controlar los eventos de cada panel, es decir, tendría que crear un controlador para cada panel? pero si fuera así como lo hago ? Gracias de antemano
Así es, ya dentro de cada JPanel te encargas de meter los controles que necesites (botones, labels, etc), y ahí mismo generas sus eventos como lo hicimos en el panel principal.
mil gracias bro
no me funciona el .add(p1,BorderLayout.CENTER)
Borra la linea: setLocation(0, 0)
Reemplaza el método add() con: .add(paneDeReemplazo, new AbsoluteConstraints(0,0,-1,-1))
No me jala, no sé por que :(
Xq no con tabbed panel
Se podría, todo depende del tipo de visualización que le quieras dar y las necesidades técnicas visualmente hablando
Por cierto, no se si suene raro pero tu voz es muy bonita
Muchas gracias 😄
THANKS!!!!!!!! I was trying to do this but for some fucking problem I didnt search about in internet. Thanks very much
I'm happy that is was useful for you! Grettins
muy bueno tu video amigo, me ayudo mucho, ando haciendolo pero con formularios, textfields, botones internos, pero no me deja ingresar nada por textfield, alguna ayuda :(
Mira mi primer video, donde comparto un pequeño sistema para biblioteca el cual usa esta misma lógica para mostrar paneles :)
Que buen video la verdad me encantó. Y ayuda mucho a mejorar las interfaces gráficas de nuestros programas. Pasó algo que dejaste de hacer vídeos?
Falta de Tiempo D: Pero ya me encuentro terminando de cocinar el siguiente video, que es una mejora a este tipo de programas. Espero esta semana tenerlo listo ;)
@@AnthonyZabs buenísimo bro te ganaste un nuevo fan y suscriptor. A esperar el siguiente video y mientras sigo mirando los demás
Muito obrigado amigo!!!
ahora imagina que deseo cambiar el panel desde el jpanel2 a jpanel1 como lo haria, osea que el boton de cambio ya no este en panel principal sino en un panel secundario
Se me ocurre que podrías hacer static el método de la clase principal que pinta el jpanel a mostrar. De tal forma que, desde tus clases secundarias puedas mandarlo a llamar también mostrando el jpanel de tu interés
@@AnthonyZabs gracias.... Lo intentaré 👍
en el ultimo java hay un error
¿En qué línea amigo?
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: adding a window to a container
Ayudaaa. No sé como solucionar ese error. :c
Hice todo como está en el video.
¿Ya probaste intentando lo que dice el comentario anclado?
a mi no me funciono:ccc
A mi tampoco😢
hey pero tu vas a la velocidad del sonido, gracias bro
Lo siento 😅
Buen video hermano, solo que necesito ayuda ya que en intellij es muy diferente y pues quisiera saber si me pudieras ayudar
Hola, no he trabajado mucho con Intellij, pero intentaré ayudarte con lo que pueda. ¿Qué necesitas?
@@AnthonyZabs bueno explico rápido, el Java swing de intellij es muy diferente al de netBeans entonces no encuentro la forma de hacer que aparezcan diferentes Jpanel dentro del mismo Jframe
O sea básicamente buscas hacer esta misma implementación usando Intellij. Vaya, necesitaría investigar de mi lado porque como te comento, no tengo mucha experiencia con Intellij 😬. Pero de que se debe poder, se debe poder. Si encuentro algo relevante te hago saber y espero también puedas encontrar algo!
@@AnthonyZabs muchas gracias, yo quiero creer que si se puede, pero casi no hay tutoriales con intellij solamente en netBeans pero como te comento que el Java swing es muy distinto, con decir que en intellij no sé sabe las medidas del Jpanel
Maven?
El empaquetador no es el punto en este video