• Viernes 3 de Mayo de 2024, 17:10

Autor Tema:  Manejo De Frames Consecutivos  (Leído 1765 veces)

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Manejo De Frames Consecutivos
« en: Lunes 30 de Octubre de 2006, 22:10 »
0
:huh:  que mas mi people de solocode, pille que lo que pasa es que toy haciend un programilla que maneja un Form principal y este tiene 4 botones y esos abren a su vez otros Form , pero la principal queda activa y lo que yo quiero es

1. que cuando le opriman un boton a la principal no me saque otra instancia de la que ya esta creada osea de los otros Frames si ya estan abiertos
2. que cuando se cierre el frame se descargue completamente y no tengo que ponerle el visible en false

no se como hacerlo no se si me entienda pero por fa ayuda urgente si!!! por fa.... :rolleyes:  

 gracias, att Acek, qualiti colombia :lightsabre:
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Manejo De Frames Consecutivos
« Respuesta #1 en: Martes 31 de Octubre de 2006, 07:55 »
0
Hola...

A ver estas respuestas:

Citar
1. que cuando le opriman un boton a la principal no me saque otra instancia de la que ya esta creada osea de los otros Frames si ya estan abiertos

Si te sucede esto es que, dentro del método de proceso de eventos tienes un new JFrame (). Tendrías que hacer lo siguiente: Utiliza una variable JFrame como parte de tu formulario principal y ponla de inicio a null. Dentro de tu método haz:

if (mi_jframe1 == null) mi_jframe= new JFrame()...
else mi_jframe.setVisible(true) //Y / O cualquier otra acción que quieras.


Para más información, puedes buscar por internet datos sobre el patrón Singleton (no tiene traducción), que es algo parecido a esto.


Citar
2. que cuando se cierre el frame se descargue completamente y no tengo que ponerle el visible en false

No te recomiendo que hagas esto con tu ventana principal. Más aún, si en algún Frame guardas referencias a otros, porque los perderás. De todas formas, la forma de hacerlo existe.

Echa un vistazo al API de Java, en la clase JFrame, en herencia de JavaSwing.WindowConstants, a la constante DISPOSE_ON_CLOSE.



Espero que te sirva todo esto.
Ya nos contarás.


Suerte.






Silverfox

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: Manejo De Frames Consecutivos
« Respuesta #2 en: Martes 31 de Octubre de 2006, 14:26 »
0
puyes gracias silverfox, pero la cosa es que estoy manejando un Frame en herencia con la clase, tengo

class GUI extends Frame{}

y no se como evitar que hagan mas de una instancia de esa clase, y respecto a lo otro la idea es que los datos hay ingresados no interesa que se pierda si no que por decirlo asi se mate ese Form y luego se pueda crear la instancia de nuevo  :lol:  si me entiendes, no se como hacerlo  :scream:
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Manejo De Frames Consecutivos
« Respuesta #3 en: Jueves 2 de Noviembre de 2006, 12:31 »
0
Hola... vamos a ver:

La creación de una sóla instancia de la clase viene dada por un patrón que se llama Singleton.


La implementación de ese patrón en Java es de lo más sencillo. Para tu ejemplo:

Código: Text
  1. public class GUI extends Frame {
  2.  
  3.    private static GUI gui_unica= null;
  4.  
  5.    private GUI () {
  6.       //constructor privado de GUI, hacer las tareas oportunas aqui.
  7.    }
  8.  
  9.    public static GUI getInstance(){
  10.       if (gui_unica== null){
  11.          gui_unica= new GUI ();
  12.       }
  13.     
  14.       return gui_unica;
  15.     
  16.    }
  17.  
  18. ...
  19.  

Así es imposible tener más de una instancia de esta clase, porque sucesivas llamadas a getInstance() te devolverán la primera que creaste.


Citar
los datos hay ingresados no interesa que se pierda si no que por decirlo asi se mate ese Form y luego se pueda crear la instancia de nuevo

No sé qué quieres hacer exactamente. Cuando dices que se cree la instancia de nuevo, supongo que quieres volver a crearla con los datos que tenía la última vez.
Lo que te recomendaría para eso es que la hagas invisible y ya está (siempre que no sea una ventana modal) y podrás acceder a los datos que tiene sin problemas y cuando vuelvas a hacerla visible, conservará todo.



Un saludo.



Silverfox


Editado: Corregir errores en el código.

acek

  • Miembro activo
  • **
  • Mensajes: 58
  • Nacionalidad: co
    • Ver Perfil
Re: Manejo De Frames Consecutivos
« Respuesta #4 en: Jueves 2 de Noviembre de 2006, 14:09 »
0
:P  hey gracias, sos un astro!!!!!  :devil:  que buena
http://twitter.com/aceherdz http://xavijava.blogspot.com/
Si Lo que crei que era mi realidad es una mentira;
 y las mentiras Son Mi Realidad . a Que Put@s Juego?
>>>>AceK<<<<
JAVA!!!!!!
COBOL
 PHP!!!!!!!!
http://www.tupokemon.com/adopcion/index.php?sumarExperiencia=164964