Aplicacion de escritorio (MDI) ayuda...!!

Les agradesco todos sus respues... que han echo hasta ahorita

Nomas para confirmar... la pregunta...
a lo mejor nuca llegaron a entender lo que realmente quiero hacer.. a lo mejor es algo sencillo de configuración pero yo no puedo solucionarlo..

debido a que este hice lo siguiente,
**---- formulario principal JFrame(MDI)
---- de aqui desprendes los catalogos etc que son formularios
**--- JInternalFrame
desde la ventanas JInternalFrame mando a llamar el catalogo correspondiente de acuerdo a la opción seleccionada, puede ser, catalogo de áreas, empleados, asignaciones, movimientos etc. estos catalos correspondientes son de tipo JPanel la cual contiene
los botones actualizar, eliminar, nuevo, buscar etc y un JTable donde se muestra todo lo registrado etc.
hasta aqui todo bien de maravilla no tengo broncas.... puedo minimizar la aplicacion
-----------------------------------------------------------------------------------------------------------------------
cada botón, nuevo, o actualizar manda a llamar la ventana tipo modal
**--- JDialog que contiene cajas de texto, combobox, boton guardar cancelar etc.
aquí es donde viene el problema porque teniendo abierto esta ventana tipo modal
quiero acceder hasta el formulario principal MDI, no realmente acceder no quiero acceder a los menús, lo realmente deseo hacer es que me permita minimizar la ventana principal, o se en pocas palabras minimizar la aplicación...
en linux no hay problema porque si lo hace.. no se a que se debe pero si lo hace sin hacer configuraciones....
el problema bien en windows porque ahi no permite acceder hasta la principal para minimizar la aplicación.-
----------------------------------------------------------------------------------------------------------------------
descartando el uso de ventana JDialog...
oara usando un
***---- JOptionPane.showInternalOptionDialog()

--lo que hice fue poner todo el contenido del jdialog las cajas de texto, botones, combobox, ponerlo en un JPanel,

ahora cuando presiono el botón de nuevo o actualizar, ahora mando a llamar el JPanel
la cual la muestro en un JOptionPane.showInternalOptionDialog() quedado de la siguiente forma,
 

como es un mensaje de dialogo interno .. ahora si puedo minimizar la aplicacion principal
no hay bronca.... pero como todo siempre hay algo que no nos gusta..
-------------------------------------------------------------------------------------------------------------------------

al mostrar el JPanel en un JOptionPane.showInternalDialog, esto jenera un marco la
cual deja un espacio alrrededor de jpanel y eso no me gusta...

aver si alquien de ustedes puede orientarme este pequeño diseño....
de echo ahorita voy a actualizar el tema donde subo una pantalla mas de lo que estoy hablando

AdjuntoTamaño
Pantalla.png98.73 KB
pantalla2.png58.98 KB
Captura de pantalla de 2015-03-16 12:28:11.png236.14 KB
show internal1.png258.84 KB
show internal2.png246.8 KB

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Re: minimizar

 

¿Y por qué alguien querría hacer algo como eso? Bueno, cada quien. Respecto al asunto de minimizar (1):

Minimizing, Maximizing, and Closing Blocked Windows

When a modal dialog box blocks a window, the user may not be able to minimize or maximize the blocked window. However, the actual behavior is unspecified and platform-dependent. In any case, the user can't close the blocked window interactively. But it can be closed programmatically by calling the   or   methods on the blocked window.


Notas

  1. The New Modality API in Java SE 6.

~~~

Imagen de pechsclk

porque alguien quiere hacer eso

Porque el que es mi asesor del proyecto.. bueno para mi titulacion.. me pide eseo, y igual donde lo van a utulizar lo requieren que sea asi..
no cres que es por mi gusto

Imagen de pechsclk

uuu no lo puede ser

No puede ser que nadie responda... es que no me explico bien..

¡Ja!

Y yo que pensé que ya estaba solucionado.

Imagen de pechsclk

aun-no

Aun no he solucionado... help

Ejemplo con ponis

 

He aquí un pequeño ejemplo:

 

¡Por si sirve de algo!

~~~

Imagen de pechsclk

grax

pero no me sirve.. sigo sin obtener el resultado deseadooo

Re: «grax»

¿Y qué es exactamente lo que deseas? ¿Qué resultado obtienes? ¿Crees que puedas re-escribir tu pregunta? Tal vez quieras ver Cómo hacer que tus preguntas tengan más posibilidades de ser respondidas.

Imagen de chicowed

Re: Sin resultados

El problema es que primero empiezas preguntando una cosa y luego otra y a la vez la mezclas, por lo que entendi tu problema radica en que no puedes hacer que tus JInternalFrames se comuniquen entre si es decir que se pasen datos entre ellos, bueno para eso solo tienes que cambiar el nivel de acceso de tus controles asi como se muestra en la imagen, no se con que IDE trabajes, pero en Netbeans es asi.

Imagen de ezamudio

ouch

Buen ejemplo de un antipatrón, eso de hacer los controles  . No sólo es mandar el encapsulamiento al diablo, sino también en cierta medida la orientación a objetos. Si resulta que quieres tener varias instancias de uno de esos frames, todos van a compartir el mismo control...

Algo más limpio (o al menos no tan desordenado) es implementar MVC, o algo similar; cuando menos, crear una clase con los datos que se deben de pasar de una ventana a otra, para que una ventana pueda crear ese objeto y ponerle los datos necesarios y devolverlo en algún método que llama la otra ventana, la cual después toma los datos de ahí para desplegarlos.

Si nos vamos un poco más a la abstracción, para desacoplar aún más esto, pues realmente una ventana no tiene por qué saber absolutamente nada de la otra ventana. No tiene ni siquiera por qué saber que es una ventana...

Por un lado, defines los datos que debes pasar de un lado a otro, y una interfaz para obtenerlos:

 

Ahora, tu ventana puede implementar esa interfaz, y poblar ese objeto de datos con los valores de sus controles:

 

Finalmente, tu otra ventana necesita saber de dónde sacar datos:

 

Imagen de chicowed

Re: Antipatron

No me lo había planteado de esa manera, pero tienes mucha razon @ezamudio de echo la mayoría de veces lo hago así tal y como indicas, una pregunta, si tengo una tabla y que al hacer clic en esa tabla se me despliegue un formulario con los datos de la fila seleccionada, también tendría que hacerlo con MVC? o simplemente tomo los datos ya almacenados en la tabla temporalmente?

algo como esto:

 

Imagen de ezamudio

otro evento?

No tienes otro evento que puedas cachar? Algo como un cambio de selección, en vez de un evento de mouse... qué pasa si en vez de click, oprimen ENTER?

Todo ese tipo de cosas que mencionan son mucho más sencillas si usas algún framework como Griffon en vez de hacer todo en Java "pelón".

Imagen de chicowed

Re: Antipatron

Entiendo, seria bueno que alguien hiciera un tutorial o un post, en donde aborde el tema de como diseñar una aplicación en Java, ya que hay mucha información sobre Patrones de diseño muy buenos, pero a la hora de aplicarlos o ver como encajarían en mi proyecto da algo de dificultades.

Gracias...

Imagen de pechsclk

repregunta.--

Les agradesco todos sus respues... que han echo hasta ahorita

Nomas para confirmar... la pregunta...
a lo mejor nuca llegaron a entender lo que realmente quiero hacer.. a lo mejor es algo sencillo de configuración pero yo no puedo solucionarlo..

debido a que este hice lo siguiente,
**---- formulario principal JFrame(MDI)
---- de aqui desprendes los catalogos etc que son formularios
**--- JInternalFrame
desde la ventanas JInternalFrame mando a llamar el catalogo correspondiente de acuerdo a la opción seleccionada, puede ser, catalogo de áreas, empleados, asignaciones, movimientos etc. estos catalos correspondientes son de tipo JPanel la cual contiene
los botones actualizar, eliminar, nuevo, buscar etc y un JTable donde se muestra todo lo registrado etc.
hasta aqui todo bien de maravilla no tengo broncas.... puedo minimizar la aplicacion
-----------------------------------------------------------------------------------------------------------------------
cada botón, nuevo, o actualizar manda a llamar la ventana tipo modal
**--- JDialog que contiene cajas de texto, combobox, boton guardar cancelar etc.
aquí es donde viene el problema porque teniendo abierto esta ventana tipo modal
quiero acceder hasta el formulario principal MDI, no realmente acceder no quiero acceder a los menús, lo realmente deseo hacer es que me permita minimizar la ventana principal, o se en pocas palabras minimizar la aplicación...
en linux no hay problema porque si lo hace.. no se a que se debe pero si lo hace sin hacer configuraciones....
el problema bien en windows porque ahi no permite acceder hasta la principal para minimizar la aplicación.-
----------------------------------------------------------------------------------------------------------------------
descartando el uso de ventana JDialog...
oara usando un
***---- JOptionPane.showInternalOptionDialog()

--lo que hice fue poner todo el contenido del jdialog las cajas de texto, botones, combobox, ponerlo en un JPanel,

ahora cuando presiono el botón de nuevo o actualizar, ahora mando a llamar el JPanel
la cual la muestro en un JOptionPane.showInternalOptionDialog() quedado de la siguiente forma,
 
como es un mensaje de dialogo interno .. ahora si puedo minimizar la aplicacion principal
no hay bronca.... pero como todo siempre hay algo que no nos gusta..
-------------------------------------------------------------------------------------------------------------------------

al mostrar el JPanel en un JOptionPane.showInternalDialog, esto jenera un marco la
cual deja un espacio alrrededor de jpanel y eso no me gusta...

aver si alquien de ustedes puede orientarme este pequeño diseño....
de echo ahorita voy a actualizar el tema donde subo una pantalla mas de lo que estoy hablando

Re: "aver si alquien"

Hola, Pedro. ¿Ya has probado con GlassPane y diálogos no modales? — Sólo por curiosidad... si no agregas este "requerimiento", ¿ya no podrías titularte?

Imagen de pechsclk

como se usa el GlassPane y dialogos no modales

Buen dia jpaul, no he problado con eso de GlassPane y dailogos no modales..

de que si no agrego este requerimiento.. lo que pasa es que donde lo voy a implementar es ahi donde me piden que aplique este requerimiento.. no en el tecnologico donde estudiaba mi acesores no me piden nada, ellos dicen que esta perfecto. ellos no ven esas cosas.. nombre yo ya me hubiera titulado.. nomas que pues en la dependencia donde voy a implementar el sistemita ahi, si me lo pide.. y es donde estoy atorado.. y realmente lo quieren.. como veras los usuarios son lo que testean estas cosas, y pues uno siempre esta acostumbrado que cuando va a abrir o pasarse a otra aplicacion que ya esta abierto, como excel, word o otra aplicacion, pues siempre van en la opcion minimizar de la aplicacion avierta..

bueno tonces me hicieron esa observacion.. y realmente si lo necesito....

gracias por la respuesta... ojala pasaras un ejemplo como se usa el GlassPane con dialogos no modales.. le agradeceria mucho

Re: no me gusta

al mostrar el JPanel en un JOptionPane.showInternalDialog, esto jenera un marco la cual deja un espacio alrrededor de jpanel y eso no me gusta...

Esto se puede configurar de la siguiente manera:

 

¡Quién quite y te guste! :-P


P.D. Si consigo algo de tiempo, tal vez pueda poner un ejemplo con GlassPane... El mes que viene es seguro.

~~~

Imagen de pechsclk

UIManager

En que parte ira para poder configurar la posicion.. los margenes...

Re: en qué parte

Después de cargar el L&F y antes de crear la interfaz.

Imagen de pechsclk

Despues de L&F

Lo voy a checar haber si lo puedo echar andar.. porque si me interesa que quede bien..., si no aquí les estaré pidiendo ayuda

Imagen de pechsclk

Poniendo antes del L&F

que tal buen día jpaul pune al inicio el código al inicio antes de cargar el L&F
quedando de la siguiente forma

 

cuando cargo la aplicacion con el L&F de nimbus si se logra quitar el marco que deja hacia los costados tanto la de la derecha, izquierda y arriba, pero la de abajo se queda tal como estaba... con una margende 1 cm,

ahora cambiando un poco la configuracion de Resources(0,0,0,0)
dejandolo de la siguiente forma

 
con estas cordenadas se ve bien el contorno bien formado pero hay un inconveniente todos los demas mensajes y de dialogs se ven corridaslos margenes....
ahora cambiando de L&Fy poniendo la de Metal o Windows   no hace ningun efecto queda como siemre con un margen hacia los lados como de 4 mlm.
quien save a que se debe, ahorita subo las pantallas..

Cambia los márgenes antes de

Cambia los márgenes antes de mostrar el diálogo (en el que se requiera), luego restablecelos al cerrarlo (15 para todo en Nimbus si mal no recuerdo).

Imagen de pechsclk

Cambia los márgenes, , luego restablécelos al cerrarlo

hola que tal ya no subí la otra imagen donde muestro la pantalla con el L&F Metal..

acontinuacion aki pongo la liga

  • bueno no se a que se debe pero asi se pone los marges... ni aunque cambiando a -15

    buenoigual veo que cuando muestro las ventanas JInternalFrame en modo Nimbus, veo que es mas lento, para arrastro con el maus,
    y de igual forma si ocupo la de metal, es mas rapido...

    Puedes "acelerarlo" ...

     

    ¡Ah! Puedes acelerarlo (en Nimbus y también en los otros L&F) si agregas la siguiente propiedad cuando estás configurando la instancia de  :

     

    Revisé rápidamente (no a profundidad) el código la clase  , pero no encontré una propiedad para modificar los márgenes.

    ~~~

    Imagen de pechsclk

    desktopPane.putClientProperty

    Esto linea de condigo donde inria.. bueno para hacelerarlo...
     
    a no no se a que se debe pues a lo mejor porque uso mucho el JPanel para mostrar los catálogos, a lo mejor estoy mal. o quien sabe
    pero llega enun determinado tiempo que se cuelga la aplicacion y en la salida me marca este error
    el programa sigue funcionando
    pero me da este error.. claro cuando lo corro en modo Nimbus
     

    Por cierto, también puedes

    Por cierto, también puedes crear tus propios diálogos.

    Imagen de pechsclk

    crear los dialogos

    Por cierto este agregue la linea de código
     
    al parecer se agilizo lo de nimbus.. y si he estado pensando hacer mis propios mensajes de dialogo.. de echo la apariencia metal se ve aceptable...

    igual el contorno que deja es simétrico en las orillas..

    Gracias Jpaul, por estos tips que y sugerencias dadas para mejorar