#1 [JAVA] JFrame, JDesktopPane y JInternalFrame
Hola gente, mi consulta es la siguiente: Estoy desarrollando una aplicacion Desktop GUI con Swing y necesito que sea de interfaz de multiples documentos (MDI). El tema es que para dicha tarea se necesita tener un JFrame contenedor, con su contentPane que sea de tipo JDesktopPane y los distintos frames internos son de tipo JInternalFrame.
El tema que se me plantea es el siguiente: Yo tengo una clase llamada MainFrame que extiende de JFrame y tengo varias clases llamadas ContactFrame, TaskFrame, CalendarFrame que todas extienden JInternalFrame.
Ahora si yo en un ActionListener de un menu de MainFrame creo un nuevo ContactFrame o TaskFrame o CalendarFrame y se lo agrego al contentPane del MainFrame, por cada vez que se pulse dicho menu me va a crear un nuevo frame y me lo va a mostrar, lo que yo necesitaria es que me cree uno y solo un frame por mas que pulse mas de una vez el menu.
El problema que se me presenta es como obtener dicho resultado: Por un momento pense tener como atributo de MainFrame una instancia de cada formulario interno que voy ausar y en el evento del menu simplemente lo muestro al formulario, tambien habria que atrapar el evento de cierre de ventana del formulario interno para que lo oculte al "cerrar" la ventana.
Otra solucion pudiera ser que cada formulario interno sea un singleton entonces estaria trabajando siempre con la misma instancia, pero no se en ese caso que realizaria el this.getContentPane().add(instancia); al querer agregar una instancia ya reigstrada del formulario.
Que soluciones plantean ustedes para esta problematica?
Saludos
PABLO
El tema que se me plantea es el siguiente: Yo tengo una clase llamada MainFrame que extiende de JFrame y tengo varias clases llamadas ContactFrame, TaskFrame, CalendarFrame que todas extienden JInternalFrame.
Ahora si yo en un ActionListener de un menu de MainFrame creo un nuevo ContactFrame o TaskFrame o CalendarFrame y se lo agrego al contentPane del MainFrame, por cada vez que se pulse dicho menu me va a crear un nuevo frame y me lo va a mostrar, lo que yo necesitaria es que me cree uno y solo un frame por mas que pulse mas de una vez el menu.
El problema que se me presenta es como obtener dicho resultado: Por un momento pense tener como atributo de MainFrame una instancia de cada formulario interno que voy ausar y en el evento del menu simplemente lo muestro al formulario, tambien habria que atrapar el evento de cierre de ventana del formulario interno para que lo oculte al "cerrar" la ventana.
Otra solucion pudiera ser que cada formulario interno sea un singleton entonces estaria trabajando siempre con la misma instancia, pero no se en ese caso que realizaria el this.getContentPane().add(instancia); al querer agregar una instancia ya reigstrada del formulario.
Que soluciones plantean ustedes para esta problematica?
Saludos
PABLO
0