Ir al contenido principal

Aplicación Interfaz de Múltiples Documentos (MDI) en Java

Aplicación Interfaz de Múltiples Documentos (MDI) en Java

Las Interfaces de Múltiples Documentos (MDI) son aquellas que permiten mostrar JFrames dentro de un solo JFrame principal, de modo que al minimizar o cerrar el JFrame principal todos se cierran. Es una forma de desarrollar aplicaciones que contengan varios formulario (JFrames) ordenados dentro de un mismo espacio de trabajo.

Una ventaja de este tipo de interfaces es que cada formulario se puede trabajar de forma independiente en JPanel, y en el MDI solo se llaman los formularios y todo el funcionamiento del JPanel sera el mismo. 

1.- Para este ejemplo se crea un nuevo proyecto, y al momento de darle nombre se desactiva la opción de NetBeans que crea automáticamente la clase principal.





2.- Una vez creado el proyecto se crea un nuevo Package para almacenar todos los formularios del proyecto.


3.- En este caso el Package se llamara principal.



4.- A continuación se crea el formulario MDI, se hace clic en el package en la opción New + Other 



5.- Dentro de la categoria Swing GUI Forms  se selecciona MDI Application Sample Form.


6.- Se le dará el nombre de midPrincipal.


7.- Este panel que se genero, contiene una barra de menús default, para este ejercicio hay que eliminar Edit y Help, y modificar File, para eliminarlos basta seleccionarlos y presionar suprimir.


8.- Se debe crear un menú como el que se muestra a continuación, Archivo -  Formulario 1, Formulario 2, y Salir. Para cambiar el nombre del componente hay que hacer clic en con el botón derecho y elegir Change Variable Name ...


9.- A cada JMenuItem asignarle el nombre correspondiente jmiFormaulario1, jmiFormulario2 y jmiSalir


10.- En la siguiente imagen se muestra como quedan renombrados los componentes del menú.


11.- El siguiente paso es agregar un JPanel para cada formulario que se desee crear, los JPanel a diferencia de los JFrame son contenedores pero no pueden visualizarse de forma independiente, es decir un JPanel para verse necesita estar dentro de un Frame, por lo que en el formulario principal será necesario agregar un JInternalFrame por cada JPanel utilizado.



12.-Se agregaran dos JPanel al proyecto, cada uno con el nombre de jpFormulario1 y jpFormulario2.


13.- En la siguiente imagen se muestra como quedan los componentes del proyecto, dos JPanel y un MDI.


14.- Como se menciono anteriormente es necesario agregar al MDI un Internal Frame por cada panel que se quiera utilizar, en este caso serán dos JInternalFrame.



15.- Una vez insertado cada JInternalFrame hay que modificar algunas de sus propiedades, para que se adapten  a las necesidades del usuario.


16.- La primera de ellas es el comportamiento cuando se cierre el JInternalFrame, en la propiedad defaultCloseOperation se asigna HIDE, esto hará que se no sea visible el JInternalFrame a diferencia de DSIPOSE que lo quitaría de la memoria, siendo necesario volver a crear el objeto para visualizarlo nuevamente, además se activa la propiedad closable.


17.- También se desactiva la opción visible, para que el formulario sea visible solo cuando el usuario lo requiera.


18.- Cada uno de los JInternalFrame se renombran, haciendo que coincidan con el JPanel que se mostrara en su interior, es decir tendrán por nombre jifFomulario1 y jifFormulario2


19.- Una vez que se crearon los componentes se requiere crear un objeto por cada JPanel que se agrego, para esto se usa el código:

private jpFormulario1 objFormalario1 = new jpFormulario1();

* El siguiente paso es crear un método incializarFormularios() que permitirá asignar el contenido del JPanel al JInternalFrame

* Con el código siguiente el JPanel se inserta en el JInternalFrame.

jifFormulario1.setContentPane(objFormulario1);

* Una vez que se han enlazado los componentes se llama al método inicializarFormularios() dentro del constructor del MDI.


20.- A cada uno de los  jmiFormulario1 y jmiFormualrio2 se les crea un evento actionPerformed, que al activarlos tendrán como tarea hacer visibles el JInternalFram correspondiente.


21.- Como se muestra en la imagen de abajo cada evento hará visible un JInternalFrame


22.- Al ejecutar el proyecto NetBeans solicita el nombre de la clase principal, en este caso solo hay una clase que contiene método main y es midPrincial.


23.- En la siguiente imagen se ve la ejecución del proyecto.


24.- Al hacer clic en alguno de los menús se mostrara el JInternalFrame correspondiente.


25.- Aquí se muestra como se hace visible un JInternalFrame.


26.- A partir de este punto cualquier cambio que se realice en uno de los paneles automáticamente se vera reflejado al momento de ejecutar el proyecto.


28.- Como en este caso al hacer clic en un botón se mostrara un mensaje.


29.- Al ejecutar nuevamente el proyecto el cambio del JPanel ya se refleja en el JInternalFrame que se visualiza dentro del formulario MDI.



Comentarios

Entradas más populares de este blog

Creación de Librerías en Java

Creación de Librerías en Java   Las librerías son un conjunto de clases con funciones especificas que ayudan a desarrollar aplicaciones más complejas de una forma sencilla, por ejemplo si se requiere realizar cálculos matemáticos y emplear el funciones como el Seno o Coseno, simplemente se importa la librería Math y se utilizan estos métodos, en lugar de desarrollarlos. Java cuenta con una extensa lista de librerías disponibles dentro del JDK o desarrolladas por terceros, pero también existe la posibilidad de desarrollar librerías propias para reutilizar de forma más eficiente el código, por ejemplo si se trabaja de forma cotidiana con conexión a base de datos, se pueden desarrollar métodos genéricos que realicen la conexión, que validen las consultas, etc. de forma que su uso reduzca el tiempo de desarrollo e incremente la productividad. Para este tutorial se van a crear dos proyectos en NetBeans, uno sera la librería y el otro proyecto hará uso de esta.

Elegir la clase a ejecutar en NetBeans, MVC

Elegir la clase a ejecutar en NetBeans Para que java pueda ejecutar una aplicación esta debe tener un método conocido como punto de entrada, este método tiene la sintaxis: void static void main(String [] sax){ //código } En ocasiones en una aplicación tiene varios puntos de entrada, que pueden servir para probar diferentes partes de la aplicación sin tener que recorrer o pasar por varias clases, para esto se puede seleccionar directamente en las propiedades del proyecto que clase será la principal.

Librerías JOptionPane para generar ventanas de entrada y salida de datos

Para poder introducir datos leídos desde el teclado existen varias formas, una de ellas hace uso de la librería javax.swing.JOptionPane que entre otras opciones permite mostrar ventanas para introducir datos, y ventanas para mostrar valores. Con el uso de esta librería se crean pequeñas interfaces definidas por el sistema, pero ya se hace uso de las librerías graficas swing, que se verán más adelante.