Java - Que debo hacer para pasar de un frame a otro swing

   
Vista:

Que debo hacer para pasar de un frame a otro swing

Publicado por Rafa (15 intervenciones) el 27/09/2008 17:44:39
Hola, estoy realizando un trabajo y he decidido empezar a utilizar NetBeans para crear la GUI con swing. La aplicación que voy a crear es bastante extensa (sobre cincuenta casos de uso) y pese a que se crear GUI para un caso en concreto, por ejemplo, pedir login y password y validar, no sé como "pasar" de un frame a otro, por ejemplo despues de validar pasar a menu_principal.

Como me recomendais que lo haga?

Gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Que debo hacer para pasar de un frame a otro sw

Publicado por Rene Gonzalez (115 intervenciones) el 27/09/2008 19:02:55
Existen varias formas. Depende de lo que quieras, puedes hacer un constructor en la clase que vas a llamar, despues de que se ingrese/valide el usuario y el password, parametros referentes a estos valores. Puedes tambien tener una clase donde se almacene el usuario y el password y pasar esta clase al constructor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que debo hacer para pasar de un frame a otro sw

Publicado por Rafa (15 intervenciones) el 27/09/2008 19:09:32
Gracias por contestar tan rápido. He formulado mal la pregunta, mi pregunta es mucho más simple que eso, yo quería hacer algo parecido a lo que se hace en programación web, poder pasar de un JFrame a otro liberando la memoria del anterior sin tener que abrir ventanas nuevas (algo parecido a cuando haces click en un enlace en una página html o cuando te redireccionan al hacer login).

No sé si ahora me he explicado bien...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que debo hacer para pasar de un frame a otro sw

Publicado por Rene Gonzalez (115 intervenciones) el 27/09/2008 19:52:54
Creo que te estoy entendiendo. Quizas podrias trabajar con otro componente Swing o con un CardLayout sobre tu JFrame o JDialog. En tal caso, seria traspasar informacion entre paneles, con variables globales, dado que solo tendrias un componente JWindow visiblle. No se si me explico.
Respecto a la liberación de memoria, tengo entendido que el GarbageCollector se encarga de eso. Creo que me asalto una duda respecto a ello, pues me parece un dispose() sobre un objeto ventana no libera la memoria. (hace poco hice un Singleton de un JDialog y pude comprobar que el objeto existia despues del dispose() ). No estoy claro respecto a este tema.
Creo que me desvie del tema, pero por ahora no se me ocurre algo mejor. Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que debo hacer para pasar de un frame a otro sw

Publicado por Cormonse (1 intervención) el 01/10/2008 14:13:10
Hola, tienes que tener en cuenta que un Frame es una ventana de alto nivel para Java, esto es no puedes contener un Frame dentro de otro, dicho lo cual tienes dos opciones:

1) Utilizar varios Frames, para eso debes destruir y enseñar los Frames: metes un boton en el Frame actual que sea para finalizar, al pulsar el boton capturas el evento y debes destruir el frame actual (this.dipose();) y crear un objeto del frame nuevo y enseñarlo (también es posible que debas pasar argumentos, depende de como plantees tu aplicacion).

2) Utilizar un solo Frame y varios objetos JPanel o JDialog: en ese caso debes ir añadiendo y quitando paneles según te vayan haciendo falta, seguramente también debido a pulsar sobre un botón o seleccionar una opción de menu. Frame tiene metodos para añadir o quitar estos componentes.

A mi personalmente la 2ª opción me parece más interesante porque permite disponer de una clase principal donde se controla el flujo del programa teniendo unas variables globales. Pero todo depende de la aplicación concreta y los gustos personales.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar