Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

15/2/10

Formularios MDI en Netbeans (Sencillo)

JAN29

 Para crear Frames internos, tambien conocidos como "formularios MDI" (Interfaz de Multiples Documentos) en Netbeans, debemos hacer uso de los objetos JInternalFrame (el formulario hijo en si)  y de una JFrame normal que servira como formulario padre.


El proyecto:

Paso 1. Crea un nuevo proyecto en Netbeans, llamalo "MDIjava", a este nuevo proyecto agregale un JFrame al cual llamaras "papa", despues añade los objetos JMenuBar, JMenu y JDesktopPane, este ultimo es una subclase de JLayeredPane que nos permite manipular frames internos

Paso 2: Ahora para insertar los frames internos, nos dirigimos al paquete de nuestro proyecto, hacemos clic derecho y escogemos NEW -- OTHER -- en la ventana que nos aparece, buscamos SWING GUI FORMS y JINTERNALFRAME, presionas siguiente y coloca un nombre al form, "Hijo1" y para terminar FINISH.
Realiza este paso una ves mas, pero al nuevo frame llamalo "Hijo2".
Esto te creara un nuevo Frame vacio, debes tener algo como esto hasta ahora
Paso 3: Has clic derecho sobre el JInternalFrame "Hijo1" y elige "propiedades" (properties), y realiza los siguientes cambios :
Realiza el mismo paso para el JInternalFrame "Hijo2"

Paso 4: Puedes trabajar con los nuevos frames "Hijo 1" e "Hijo 2" independientemente, y añadirles los objetos para trabajar en ellos.

Paso 5: Para llamarlos desde el jFrame padre, clic derecho sobre uno de los JMenu y escoge EVENTS - ACTION - ACTIONPERFORMED
El codigo para crearlos es el mismo que si de un JFrame se tratara, con la diferencia de que despues hay que añadirlos al JDesktop, el codigo es el siguiente:

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        // Se crea el objeto       
        Hijo1 h1 = new Hijo1();
        // se añade al jDesktopPane
        jDesktopPane1.add(h1);
        //se muestra en pantalla
        h1.show();
    }

Lo mismo para el "Hijo 2" y ya esta
Codigo fuente aqui abajo
Click para descargar

26 comentarios:

Anónimo dijo...

Es muy buena la aplicacion me sirvio mucho....gracias!!!

Anónimo dijo...

Amigo hola como estas, tengo un problema quiero llamar un jinternalframe desde otro internalframe, todo esto debe ocurrir dentro del frame padre.como haria... desde ya gracias..ojala me contestes a tiempo :(

jc mouse dijo...

pues esta medio complicado explicar pero haber.

tomando como ejemplo el programa de esta post, lo que debes hacer es

1. Al JDesktopPane, ingresas a sus propiedades -> code, y en variable modifiers, le aumentas STATIC

2. en el form principal, le añades este metodo:
static public void abrirhijo(){
// Se crea el objeto
hijo2 hijomio = new hijo2();
// se añade al jDesktopPane
Panel.add(hijomio);
//se muestra en pantalla
hijomio.show();
}

3. en el form hijo que quieres utilizar, por ejemplo HIJO1, le añades un boton y llamas al metodo:

papa.abrirhijo();

eso es todo :=)

perdon por la tardanza :/

Ham! dijo...

Hola JC - MOUSE y atodos los que usaron el codigo, aqui va mi aporte, esto que escribire acontinuacion, permite abrir los hijos en una sola instancia, ya que de ,la forma que empelaste, mostrara al hijo cada vez que cliceemos el objeto que lo mostrará y asi se veran muchas instancias del mismo, cosas que no es efectiva, bien aqui está:

// Se crea el objeto una sola vez.....
Hijo1 h1 = new Hijo1();

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {

// se añade al jDesktopPane
jDesktopPane1.add(h1);
//se muestra en pantalla
h1.show();
}


es todo, algo simple pero que me costo hacerlo...XD

De paso, espero me ayuden con esto:

Quiero cerrar un JInternalFrame pero no ocultarlo, sino, que se cierre, que finalice, que desaparezca del buffer... digamos que empleo setVisible(true); para mostrar, est abien, lo ejecuta, pero si empleo setVisible(false); solo lo oculta y todo lo que hice alli se volverá a ver al mostrarlo nuevamente; a eso voy, digamos, abro mi JIF y alli tengo un jtext en el cual he escrito algo, si uso setvisible, lo que escribi me vuelve a aparecer... creo que me explico, espero me ayuden!!!

Gracias!!!

Anónimo dijo...

Pra cerrar un JinternalFrame lo debes hacer de la siguiente manera
this.dispose();

ThiaguitoAlejandro dijo...

kien lo puede hacer ayudenme...el trabajo me inmpide..hacerlo.el record..es de 2.Horas ..el que lo aga en menos..mis Respetos..Gracias

Construir una aplicación que permita automatizar el sistema de información académico de la Universidad Privada para los alumnos de la carrera de Ingeniería de sistemas, de acuerdo a los siguientes criterios que se plantean a continuación:

CARACTERISTICAS DE LA APLICACIÓN:
• DEBE SER ORIENTADA A OBJETOS
• DEBE SER EN ENTORNO VISUAL(Java Swing)
• DEBE ESTAR BASADA EN ESTRUCTURA DE DATOS (ARREGLOS O LISTAS (vectores, HashTable, etc.)). NO USAR BASE DE DATOS

ALCANCES DE LA APLICACIÓN:
El sistema debe estar conformado por 4 formularios los cuales será invocado desde un JMenuBar.
FORMULARIO 1: REGISTRO DE ALUMNOS
Se almacenarán los siguientes datos: CodAlu (Código del alumno), ApeAlu (Apellido del Alumno) y NomAlu (Nombre del Alumno)

En este formulario se podrán realizar las operaciones de mantenimiento de datos de los alumnos (tales como: Insertar, Modificar, Eliminar y buscar). Todos los alumnos Ingresados deben Mostrarse en forma de Listado

FORMULARIO 2: REGISTRO DE ASIGNATURAS
Se almacenarán los siguientes datos: CodAsi (Código de la asignatura), NomAsi (Nombre de la asignatura) y ciclo.

En este formulario se podrán realizar las operaciones de mantenimiento de datos de los alumnos (tales como: Insertar, Modificar, Eliminar y buscar). Todos los alumnos Ingresados deben Mostrarse en forma de Listado
FORMULARIO 3: REGISTRO DE NOTAS
Se almacenarán los siguientes datos: CodAlu (Código del alumno), CodAsi (Código de la asignatura), PC1, EP, PC2, TP, EF, SUST, PF.

El ingreso de notas en este formulario debe realizarse de la siguiente forma:

a) Se debe seleccionar mediante un jCombo al alumno.
b) Luego, seleccionar mediante otro combo el ciclo en el cual el alumno está matriculado
c) Luego seleccione la asignatura que corresponde al ciclo donde el alumno está matriculado. (El combo automáticamente debe presentar dichas asignaturas)
d) Luego Ingresar la notas que correspondan. Al finalizar se debe presionar el botón Grabar. (El cálculo del Promedio final debe ser automático)
e) Los Datos ingresados debe visualizarse en forma de listado

FORMULARIO 4: REPORTE DE NOTAS
Este formulario debe visualizarse el reporte de notas de acuerdo a los siguientes criterios: Por asignaturas, Por ciclo, Por Alumnos y por situación académica (aprobado o desaprobado)

Comentario y explicaciones...porfavor lo mas sencillo posible,,

Anónimo dijo...

kien lo puede hacer ayudenme...el trabajo me inmpide..hacerlo.el record..es de 2.Horas ..el que lo aga en menos..mis Respetos..Gracias

Construir una aplicación que permita automatizar el sistema de información académico de la Universidad Privada para los alumnos de la carrera de Ingeniería de sistemas, de acuerdo a los siguientes criterios que se plantean a continuación:

CARACTERISTICAS DE LA APLICACIÓN:
• DEBE SER ORIENTADA A OBJETOS
• DEBE SER EN ENTORNO VISUAL(Java Swing)
• DEBE ESTAR BASADA EN ESTRUCTURA DE DATOS (ARREGLOS O LISTAS (vectores, HashTable, etc.)). NO USAR BASE DE DATOS

ALCANCES DE LA APLICACIÓN:
El sistema debe estar conformado por 4 formularios los cuales será invocado desde un JMenuBar.
FORMULARIO 1: REGISTRO DE ALUMNOS
Se almacenarán los siguientes datos: CodAlu (Código del alumno), ApeAlu (Apellido del Alumno) y NomAlu (Nombre del Alumno)

En este formulario se podrán realizar las operaciones de mantenimiento de datos de los alumnos (tales como: Insertar, Modificar, Eliminar y buscar). Todos los alumnos Ingresados deben Mostrarse en forma de Listado

FORMULARIO 2: REGISTRO DE ASIGNATURAS
Se almacenarán los siguientes datos: CodAsi (Código de la asignatura), NomAsi (Nombre de la asignatura) y ciclo.

En este formulario se podrán realizar las operaciones de mantenimiento de datos de los alumnos (tales como: Insertar, Modificar, Eliminar y buscar). Todos los alumnos Ingresados deben Mostrarse en forma de Listado
FORMULARIO 3: REGISTRO DE NOTAS
Se almacenarán los siguientes datos: CodAlu (Código del alumno), CodAsi (Código de la asignatura), PC1, EP, PC2, TP, EF, SUST, PF.

El ingreso de notas en este formulario debe realizarse de la siguiente forma:

a) Se debe seleccionar mediante un jCombo al alumno.
b) Luego, seleccionar mediante otro combo el ciclo en el cual el alumno está matriculado
c) Luego seleccione la asignatura que corresponde al ciclo donde el alumno está matriculado. (El combo automáticamente debe presentar dichas asignaturas)
d) Luego Ingresar la notas que correspondan. Al finalizar se debe presionar el botón Grabar. (El cálculo del Promedio final debe ser automático)
e) Los Datos ingresados debe visualizarse en forma de listado

FORMULARIO 4: REPORTE DE NOTAS
Este formulario debe visualizarse el reporte de notas de acuerdo a los siguientes criterios: Por asignaturas, Por ciclo, Por Alumnos y por situación académica (aprobado o desaprobado)

Comentario y explicaciones...porfavor lo mas sencillo posible,,

hasta este jueves ..porfaaaa

Mouse dijo...

llegue tarde pero no esta tan dificil esa aplicacion que dice, lo siento

Anónimo dijo...

hola mouse..soy el de la aplicacion anterior..bueno intente hacerlo..no en 2 horas si no en mas tiempo...lo de la hora es referncial..bueno ..salio el trabajo ..pero me faltaron lagunas cosas....Bueno si existe la forma mas sencilla ..si puedes hacerlo..y explicarlo como siempre..gracias amigo..cuidate..soy el de la aplicacion que no pude realizar.

Anónimo dijo...

MUCHAS GRACIAS POR LA AYUDA, TMB M SIRVIO DE MUXO!!!
SALU2

Anónimo dijo...

lo voy a ensayar espero me sirva se le agradece, bna explicación.

Anónimo dijo...

Buena info ratita, pero como abro la ventana 2 desde la 1 y le envio un valor a una variable creada en la ventana 2. Si puedo abrir la ventana 2 desde la 1 pero no puedo asignarle valores a sus variables. Muchas gracias, saludos.

Mouse dijo...

Anonimo ultimo: para compartir valores entre formularios puedes utilizar STATIC o referencias a los objetos

Anónimo dijo...

Excelenete post :P

Krïst007 dijo...

Hola saludos
tengo una pregunta
¿Como podría hacer los MDi en NetBeans 7? ya he intentado de todo!. Quería usar java por que detesto el software propietario y además java es multi plataforma pero la verdad me NetBeans me parece una m!erd4, q' lastima creo ke me tocará devolverme al mald!t0 visual basic que aunke a veces mal funcione por lo menos hay buena documentacion al respecto en la web.
gracias de antemano por la atencion y la pronta respuesta.

hug0lizama dijo...

Una vez más tu blog me ha servido de mucho para aprender.

Gracias.

Jarry2146 dijo...

Como crear un sitema de registro de alumnos en java con netbeans.

Xadirita dijo...

Hola alguien me puede ayudar, necesito programar un sumulador de ingenieria economica en netbeans, es como una calculadora. Gracias

Anónimo dijo...

oye necesito un favor necesito mostrar los jINTERNALFRAME EN FORMA DE CASCADA O MOSAICO QUE SALGAN ORDENADOS.. SERA QUE PUEDES??

Jorge dijo...

Hola amigo, en primer lugar felicitarte por el esfuerzo de brindar tus conocimientos a los que recien empezamos.
Bueno me baje el IDE 7.1 de netbeans y lo primero que hice fue crear una aplicacion con un procedimiento main() y luego agregue un MDI del asistente, al momento de ejecutar el MDI me aparece con un fondo azul muy bonito (pareciera una imagen), pero al momento de llamarlo desde el metodo main de la clase principal se pierde y aparece un fondo en blanco. Porque pasa eso, me podrias ayudar??

Jorge dijo...

ya se porque aparece no aparece el fondo azul, que en si se trata del tema NIMBUS, lo que pasa es que al crear el MDI a traves del asistente, te crea un metodo main() donde se personaliza el formulario y alli hay un comentario que esta colapsado, pero si lo abres veran las sentencias que permiten aplicar el diseño al fomulario
/*
* Set the Nimbus look and feel
*/
ahora, como yo lo llamo desde otro main() de la clase principal de la aplicacion no ejecutaba ese main() del formulario, por lo que movi el codigo este, al main de mi clase principal y funcionó.
Ahora mi pregunta es si estará bien colocarlo alli o dentro de un proceso de inicializacion del formulario, asi como los eventos INIT() o LOAD() de los otros lenguajes del programacion.

Anónimo dijo...

Tengo un problema. Quisiera que cada vez que llame a un jframeinternal desde el menu solo se abra una vez y no varias ventanas del mismo, osea si esta presenten en el jdesktop ya no se abra otro hasta que este cerrado y otra problema q tengo, que pasa si el jframinternal es mas grande q el jdesktop como apareceria las barras de desplazamiento automaticamente dependiendo de los jinternalframe.
Dejo mi msn por siaca : pier_164@hotmail.com
espero tu ayudo please.

Dolfo dijo...

Perfecto manual y muy util, gracias

Anónimo dijo...

gracias men

OmarGuevara dijo...

Akles dejo una pequeña aplicacion ... http://darwinomartics.blogspot.com/2013/09/java-alquiler-de-habitaciones.html

Carlos S. Castillo De Paz dijo...

buenas tardes mouse
muy bonito ejemplo, quisiera saber si hay alguna forma de que el reporte de ireport se pueda ver dentro de la aplicacion mdi como un Jinternalframe?

gracias

Post recomendado