También pensé en una solución así pero como en mi proyecto iba a manejar como unas 10 ventanas, creí que eso lo complicaría mucho, en mi caso, opté por usar una clase Principal.java (el cual no es JFrame y contiene al método main) y a partir de ahí gestionar toda la navegación por medio de una interfaz (java interface), de tal forma que en Principal.java, tuviera todos los métodos necesarios para ir de una venatana a otra pero a la vez, accediendo a las instancias ya creadas de dichas ventanas. Puede sonar muy engorroso y lo fue, pero al final si funcionó como quería. Aún así, debo admitir que el proyecto no lo he vuelto a tocar por temas de tiempo y ahí quedó, un poco en el olvido. En fin, a lo que quería llegar era que para sistemas más complejos con varios formularios, conexiones a bases de datos y demás, resulta ser algo mucho más tedioso.
Hola Programa Tutos.. Primeramente gracias y te felicito por el tutorial. en el video en el minuto 5:20 al 5:24 no se ve el paso donde colocas la variable ventana2 como global, iba bien hasta alli y no pude ver como lo solucionabas el video se corta, en esta parte Ventana2 v2 = new ventana2(); solo se ve que lo borras pero donde y como lo pegas para que sea declarado como global?.. y la ventana 2 no se creé de nuevo sino que se haga visible con los cambios, Soy Un Novato me disculpas de antemano.
Que programa estas utilizando? Yo lo estoy probando en Netbeans IDE 8.2 y me marca error en la linea de codigo:"v2.setV1(v1.this);" en la ventana1 ¿Cómo puedo arreglarlo?
No importa la versión de NetBeans que uses, el código debe funcionar. Podrías poner el error que marca, si solo pones la linea de código no podemos ayudarte
Se crea una nueva instancia en el primer método, cuando haces un new ventana cada vez que presionas el botón. En la segunda forma solo se crea una instancia
Yo tengo una pregunta. Tengo una ventana principal y 4 ventanas secundarias. Si desde la ventana principal abro la ventana secundaria1, regreso a la principal y vuelvo a abrir la ventana secundaria1, los datos siguen ahí. Asi como en el video que su "Nuevo texto" no se modifica :) Pero cuando regreso a la ventana principal y ahora abro la ventana secundaria2, regreso a la principal y ahora abro la ventana secundaria1, mis datos que habia ingresado antes, ya no estan. Es decir mi "Nuevo Texto" desaparece :( ¿Cómo podría solucionar esto?
En cada nueva ventana que no sea la principal debes tener el private vistaInicio v1; public void setV1(vistaInicio v1){ this.v1 = v1; } Y en la ventana principal debes crear todas las instancias ventanas secundarias por así decirlo, en mi caso es así: public class vistaInicio extends javax.swing.JFrame {
apartamentos ap = new apartamentos(); vistaCartera cart = new vistaCartera(); pagos pagos = new pagos(); vistaReservas reserv = new vistaReservas(); vistaAdministracion admi = new vistaAdministracion(); Y cada boton que lleva a esas ventanas: private void btnApartamentosActionPerformed(java.awt.event.ActionEvent evt) {
Hermano,te quiero un chngo,no sabes cua to estuve buscando tutoriales,literal salvaste mi calificación 😔
También pensé en una solución así pero como en mi proyecto iba a manejar como unas 10 ventanas, creí que eso lo complicaría mucho, en mi caso, opté por usar una clase Principal.java (el cual no es JFrame y contiene al método main) y a partir de ahí gestionar toda la navegación por medio de una interfaz (java interface), de tal forma que en Principal.java, tuviera todos los métodos necesarios para ir de una venatana a otra pero a la vez, accediendo a las instancias ya creadas de dichas ventanas.
Puede sonar muy engorroso y lo fue, pero al final si funcionó como quería.
Aún así, debo admitir que el proyecto no lo he vuelto a tocar por temas de tiempo y ahí quedó, un poco en el olvido.
En fin, a lo que quería llegar era que para sistemas más complejos con varios formularios, conexiones a bases de datos y demás, resulta ser algo mucho más tedioso.
Dependería mucho el como se enlacen las ventanas, si solo tiene una ventana padre y una hijo entonces solo necesitas dos enlaces para cada ventana
gracias, justo lo que necesitaba.
Hola Programa Tutos.. Primeramente gracias y te felicito por el tutorial.
en el video en el minuto 5:20 al 5:24 no se ve el paso donde colocas la variable ventana2 como global, iba bien hasta alli y no pude ver como lo solucionabas el video se corta, en esta parte Ventana2 v2 = new ventana2(); solo se ve que lo borras pero donde y como lo pegas para que sea declarado como global?.. y la ventana 2 no se creé de nuevo sino que se haga visible con los cambios, Soy Un Novato me disculpas de antemano.
Hola, solo tienes que pegarlo arriba del constructor, de la linea 16 (public ventana1() )
@@ProgramaTutos Gracias, a ver si aprendo..
Ni me detecta las variables
dispose() es lo mismo?
Buenas tardes, que tal?, una pregunta como se podria hacer para 3 ventanas o mas?
Es la misma idea, creas una variable de tipo JFrame para cada ventana que necesites enlazar
Que programa estas utilizando?
Yo lo estoy probando en Netbeans IDE 8.2 y me marca error en la linea de codigo:"v2.setV1(v1.this);" en la ventana1
¿Cómo puedo arreglarlo?
Lo estoy haciendo para un proyecto
No importa la versión de NetBeans que uses, el código debe funcionar. Podrías poner el error que marca, si solo pones la linea de código no podemos ayudarte
¿y por qué se supone que se crean varias instancias? Si se está seteando la variable que almacena la instancia del nuevo JFrame.
Se crea una nueva instancia en el primer método, cuando haces un new ventana cada vez que presionas el botón. En la segunda forma solo se crea una instancia
Cual es la variable ventana1?
Sale error.
Yo tengo una pregunta.
Tengo una ventana principal y 4 ventanas secundarias.
Si desde la ventana principal abro la ventana secundaria1, regreso a la principal y vuelvo a abrir la ventana secundaria1, los datos siguen ahí. Asi como en el video que su "Nuevo texto" no se modifica :)
Pero cuando regreso a la ventana principal y ahora abro la ventana secundaria2, regreso a la principal y ahora abro la ventana secundaria1, mis datos que habia ingresado antes, ya no estan. Es decir mi "Nuevo Texto" desaparece :(
¿Cómo podría solucionar esto?
Creo q es copiar el código q permite hacer eso en cada ventana secundaria 🤔
No me deja abrir más de tres ventanas, como se soluciona?
En cada nueva ventana que no sea la principal debes tener el
private vistaInicio v1;
public void setV1(vistaInicio v1){
this.v1 = v1;
}
Y en la ventana principal debes crear todas las instancias ventanas secundarias por así decirlo, en mi caso es así:
public class vistaInicio extends javax.swing.JFrame {
apartamentos ap = new apartamentos();
vistaCartera cart = new vistaCartera();
pagos pagos = new pagos();
vistaReservas reserv = new vistaReservas();
vistaAdministracion admi = new vistaAdministracion();
Y cada boton que lleva a esas ventanas:
private void btnApartamentosActionPerformed(java.awt.event.ActionEvent evt) {
ap.setV1(this);
ap.setVisible(true);
this.setVisible(false);
}
private void btnCarteraActionPerformed(java.awt.event.ActionEvent evt) {
cart.setV1(this);
cart.setVisible(true);
this.setVisible(false);
}
private void btnReservasActionPerformed(java.awt.event.ActionEvent evt) {
reserv.setV1(this);
reserv.setVisible(true);
this.setVisible(false);
no era mas facil solo agregar un "dispose();" ?