SlideShare una empresa de Scribd logo
1 de 9
EjemploJInternalFrame
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
public class EjemploJInternalFrame extends JInternalFrame {
/* ÉSTE MAIN LO GENERA ECLIPSE PARA PRUEBAS, LO DEJO
* COMENTADO PORQUE YA ESTÁ FUNCIONANDO Y SE EJECUTARÁ
* DENTRO DE UN JDesktopPane COMO TODO BUEN JInternalFrame
* TAMBIÉN SE PUEDE EJECUTAR DENTRO DE OTROS PANELES
* PERO ESO NO SE SUELE UTILIZAR.
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
EjemploJInternalFrame frame = new
EjemploJInternalFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}*/
// ÉSTE ES EL CONSTRUCTOR DE LA CLASE
public EjemploJInternalFrame() {
// coordenadas con las dimensiones de la ventana
setBounds(100, 100, 245, 134);
// disposición de capas a nulo para poder posicionar
// con coordenadas en vez de con el esquema determinado
getContentPane().setLayout(null);
// un etiqueta...
JLabel lblstoEsUna = new JLabel("u00C9sto es una ventana
interna...");
lblstoEsUna.setBounds(10, 11, 333, 14);
getContentPane().add(lblstoEsUna);
// el botón que cierra ésta ventana interna
JButton btnAprietaAquPara = new JButton("Aprieta aquu00ED
para cerrar");
btnAprietaAquPara.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// ésto se ejecuta cuando se aprieta el botón
// manda la clase a la basura,
// con lo que se cierra la ventana
dispose();
}
});
btnAprietaAquPara.setBounds(10, 36, 209, 58);
getContentPane().add(btnAprietaAquPara);
48
49
50
51
52
53
54
55
}
}
Java + Swing020.Modo diseño enNetBeans.Llamarun jDialoginterno desdeun
jFrame.
Ejercicio:Realizarunapequeñaaplicaciónque permitaejecutarunformulariojDialoginterno
desde unjFrame.
Diseñamosel formularioenJFrame.El nombre parael jFrame esa criteriode cada uno, lo
importante esel diseñode lamisma.Enla imagenpodemosverel diseñoylosnombresde
variablesde cadaobjeto(etiquetasenrojoparalosnombresde variable),estoesmuy
importante yaque cada métodoutilizael nombre de variablecorrespondienteparareferenciar
al objetoenespecífico.Se puede cambiarel “Nombre de variable”de cadaobjetohaciendo
clicderechosobre lamismay clic en“Cambiarnombre de variable…”.
Diseñodel jDialog:adiferenciade enotrassituaciones,estejDialogdebe serinterno,portanto
se agrega como cualquierotroobjeto,tomandode lapaletaysoltandosobre el diseñodel
jFrame principal comose muestraenla imagenmásabajo,lo demásesigual a como se trabaja
con un formulario.Se puede alternarconel del jFrame seleccionadodesde el “Inspector”al
costadoizquierdo.(clicparaampliarimagen)
Observación:Tomar en cuentaque hay que utilizarlasimportaciones“import”,básicopara
utilizarciertosmétodosyobjetos.El “setLocationRelativeTo(null)”sirve paracentrarel
formulario.Lasvariablesde clase se puedenllamardesde cualquiermétodo,portantose
utilizaparaobjetosque se necesitanutilizarenvariasubicaciones.
Creamoslosmétodossiguientesenel apartado“Fuente”.Normalmente estosmétodoslos
podemosagregardebajodel constructordel jFrame oal final de la declaraciónde variables.
Estos métodosutilizanconversionesde tiposde datos,controlesde excepcionesydemáspara
controlarlo mejorposible el resultado.Se agregancomentariosparatratarde facilitarel
entendimientodel funcionamientode cadacódigo.
private void tableModel(){
//Configuramos tamaño de las columnas
jTbl.getColumnModel().getColumn(0).setPreferredWidth(10);
jTbl.getColumnModel().getColumn(1).setPreferredWidth(200);
jTbl.getColumnModel().getColumn(2).setPreferredWidth(100);
jTbl.getColumnModel().getColumn(3).setPreferredWidth(20);
//Utilizamos nuestra variable model para asignar a nuestra tabla
el Model
model = (DefaultTableModel)jTbl.getModel();
model.setNumRows(0);
//Cargamos datos en la tabla si los campos no estan vacios.
//El signo ! sirve para negar. Por tanto decimos "si el campos es
diferente de vacío".
if(!nom.getText().isEmpty() || !nac.getText().isEmpty() ||
!edad.getText().isEmpty()){
for (int i = 0; i < 10; i++) {
model.addRow(new Object[]{
i,nom.getText(),nac.getText(),edad.getText()
});
}
}
}
private void llamarJFrame(){
//Llamamos nuestra metodo para manejar la tabla y llenarla
tableModel();
//Centramos nuestro jDialog
jDialog.setLocationRelativeTo(null);
//La hacemos modal
jDialog.setModal(true);
//Establecemos dimensiones.
jDialog.setMaximumSize(new Dimension(800, 600));
jDialog.setMinimumSize(new Dimension(480, 230));
//Establecemos un título para el jDialog
jDialog.setTitle("Lista de Datos.");
//La hacemos visible.
jDialog.setVisible(true);
}
Utilizamosel evento“ActionPerformed”parallamarlosmétodosdesde losbotones.Para
utilizarun“Evento”hacemosclicderechosobre el objetoyseleccionamos“Eventos”de lalista
utilizamoslaque podamosaplicaral objeto.Enlamayoría de loscasosse utilizael
“ActionPerformed”.Se agregancomentariosparatratar de facilitarel entendimiento.
private void mostrarActionPerformed(java.awt.event.ActionEvent
evt) {
//Método para llamar al jDialog
llamarJDialog();
}
Ejecutamosel formulariojFrame yllamamosanuestrojDialogdesde el botón.(clícpara
ampliarimagen)
JFrame. Existe un control Swing llamado Internal Frame que se utiliza para agregar
Frames dentro otro. Sin embargo, debemos recordar que un Frame tiene propiedades
tales como la barra de títulos, los botones de maximizar, minimizar y cerrar, coloca un
nuevo ítem en la barra de tareas en Windows, KDE y Gnome, entre otras propiedades.
Cabe destacar que muchas veces estos atributos no serán necesarios y entorpecerían el
accionar de la aplicación. Muchas veces necesitamos unicamente un pequeño recuadro e
insertarlo en uno u otro JFrame. Así que para esos efectos están los JPanels.
Realizaremos un pequeño ejemplo con éstos.
Vamos a realizar una pequeña aplicación, que consiste en realizar dos de las
operaciones básicas: sumas y restas. Para realizar cada una de ellas, el JFrame añade
entre sus componentes a dos JPanels, uno para cada operación respectivamente.
Antes de mostrar cómo crear los JPanels, debemos de cambiar el layout al JFrame que
utilizaremos. El Layout es una propiedad de los contenedores Swing para colocar todos
los elementos que se contienen dentro de él. Como Java es multiplataforma, y en cada
una de ella se disponen de manera distinta el orden de los elementos o componentes.
Por lo tanto, Swing lo realiza con la ayuda de los layouts. En modo diseño del JFrame,
hacemos click derecho a la opción Set Layout y le asignamos Null Layout, ya que
nosotros colocaremos otro tipo de layout diferente al del diseño libre que nos brinda el
editor de diseño de Netbeans. De esta forma:
Ahora sí, creamos dos JPanels desde el navegador de proyectos, uno llamado
panelHijoSuma y otro panelHijoResta. Deben quedar de la siguiente manera:
Vean que el último TextBox se encuentra deshabilitado para que sea modificado por el
usuario. Este solo presentará el resultado y el usuario jamás lo podrá tocar.
Al JFrame, tal y como lo observaron al inicio de este artículo solo le agregamos una
Menu Bar, y un par de ítems para que luzca así:
Ahora, dentro del JFrame, en su constructor, y luego de la inicialización de
componentes, vamos a establecer el layout a utilizar. Para este ejercicio, escogí el
FlowLayout, que dispone un orden de los elementos horizontal uno tras otro y con
cierto espaciado que podemos asignar.
El código dentro del constructor deberá ser el siguiente:
//Constructor
public framePadre() {
//llamo al constructor padre y le mando el nombre del título de la ventana
super("Operaciones Básicas");
//Función de inicialización de componentes. Netbeans la coloca por defecto
initComponents();
//Colocamos el nuevo tipo de layout que queremos que tenga nuestro JFrame
this.setLayout(new FlowLayout());
}
También creamos dos atributos al JFrame, para más facilidad. Serán dos atributos del
tipo de datos de cada uno de los JPanel.
private panelHijoSuma hs;
private panelHijoResta hr;
Ahora, en cada una de los ítems de la barra de menú, para mostrar el JPanel deseado,
colocamos el siguiente código:
//Nombre evento
private void nSumaActionPerformed(java.awt.event.ActionEvent evt) {
//Si ya está el otro Jpanel añadido al contenedor, entonces se elimina
try{
this.remove(hr);
}
catch(Exception e){
}
//Creamos una nueva instancia de panelHijoSuma
hs = new panelHijoSuma();
//Agregamos la instancia al JFrame, con un layout al centro
this.add(hs, BorderLayout.CENTER);
//Hacemos que el JFrame tenga el tamaño de todos sus elementos
this.pack();
}
Este código debe de ser similar en los restantes ítems de la Menu Bar, siempre con el
evento ActionPerformed.
Ahora, la parte final de este artículo. Realizaremos cada una de las operaciones dentro
del evento de los TextBox, KeyReleased(). De esta forma:
Ahi agregaremos el siguiente código:
//Nombre del evento. Lo genera Netbeans
private void txtnum1KeyReleased(java.awt.event.KeyEvent evt) {
//Asignamos el texto del textBox a una variable Integer
int num1 = Integer.parseInt(this.txtnum1.getText());
//Si el otro TextBox no esta vacio, entonces se debe realizar la operación
if (!this.txtnum2.getText().equals("")){
int num2 = Integer.parseInt(this.txtnum2.getText());
//Se realiza la operación, y se coloca en el TextBox del resultado
this.txtresultador.setText(String.valueOf(num2+num1));
}
}
La aplicación debe lucir así:
El mismo JFrame con uno y otro JPanel
Espero que les sea útil este código.
Ejemplo sencillo conJInternalFrame
Saltar a: navegación,buscar
Un JInternalFrame es una ventana que va metida dentro de un panel y no puede salirse
de él. En java el panel adecuado y especializado en el manejo de JInternalFrame es el
JDesktopPane.
Vamos a hacer un ejemplo sencillo de uso. El siguiente código crea un JFrame con un
JDesktopPane dentro. Luego se crea una ventana JInternalFrame que tiene un JLabel y
un JTextField. El JInternalFrame se mete dentro del JDesktopPane y se visualiza todo.
Es importante darle tamaño al JInternalFrame, ya que si no, no lo veremos -tiene
tamaño 0,0-. Por defecto el JInternalFrame no es redimensionable, ni se puede cerrar ni
tiene botones de maximizar y minimizar. Tendremos que decirle con los métodos
adecuados si queremos que tenga esas características. También es importante hacer
visible a posta el JInternalFrame, ya que por defecto es oculto.
/**
* Ejemplo de uso de un JInternalFrame
*/
package chuidiang.ejemplos;
import java.awt.FlowLayout;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
/**
* Instancia un JFrame con un JDesktopPane y dentro de este
* un JInternalFrame.
* @author chuidiang
*
*/
public class PruebaInternalFrame {
/** Instancia esta clase */
public static void main(String[] args) {
new PruebaInternalFrame();
}
/**
* Crea el JFrame, el JDesktopPane, un JInternalFrame de
* muestra y lo visualiza.
*/
public PruebaInternalFrame()
{
// El JFrame con el JDesktopPane
JFrame v = new JFrame("Prueba JInternalFrame");
JDesktopPane dp = new JDesktopPane();
v.getContentPane().add(dp);
// Se construye el panel que ira dentro del
JInternalFrame
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.add (new JLabel("Una etiqueta"));
p.add (new JTextField(10));
// Se construye el JInternalFrame
JInternalFrame internal = new JInternalFrame("Un
Internal Frame");
internal.add(p);
// Es importante darle tamaño -pack()- al
JInternalFrame,
// porque si no, tendrá tamaño 0,0 y no lo veremos.
internal.pack();
// Por defecto el JInternalFrame no es redimensionable
ni
// tiene el botón de cerrar, así que se lo ponemos.
internal.setResizable(true);
internal.setClosable(true);
// Se mete el internal en el JDesktopPane
dp.add(internal);
// Se visualiza todo.
v.setSize(500,500);
v.setVisible(true);
v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// Se visualiza el JInternalFrame
internal.setVisible(true);
}
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Swing
SwingSwing
Swing
 
Guia para e insertar codigo en mi proyecto
Guia  para e insertar codigo en mi  proyectoGuia  para e insertar codigo en mi  proyecto
Guia para e insertar codigo en mi proyecto
 
Swing
SwingSwing
Swing
 
Guia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeansGuia practica funciones en java con NetBeans
Guia practica funciones en java con NetBeans
 
Actionscript 3.0 primeros pasos botones
Actionscript 3.0 primeros pasos botonesActionscript 3.0 primeros pasos botones
Actionscript 3.0 primeros pasos botones
 
Manejo de eventos en java
Manejo de eventos en javaManejo de eventos en java
Manejo de eventos en java
 
Depuracion de código con Eclipse
Depuracion de código con EclipseDepuracion de código con Eclipse
Depuracion de código con Eclipse
 
Guia rompecabezas
Guia  rompecabezasGuia  rompecabezas
Guia rompecabezas
 
Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java Swing, awt y JOptionPane de java
Swing, awt y JOptionPane de java
 
Procedures funciones
Procedures funcionesProcedures funciones
Procedures funciones
 
Interfaces Usuario 3
Interfaces Usuario 3Interfaces Usuario 3
Interfaces Usuario 3
 
Java
JavaJava
Java
 
Eventos
EventosEventos
Eventos
 
SECATT
SECATTSECATT
SECATT
 
Guía ruleta
Guía  ruletaGuía  ruleta
Guía ruleta
 
Programando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte unoProgramando bajo el paradigma orientado a objetos, parte uno
Programando bajo el paradigma orientado a objetos, parte uno
 
6.eventos y swing
6.eventos y swing6.eventos y swing
6.eventos y swing
 
Librería swing java
Librería swing javaLibrería swing java
Librería swing java
 
Informe tecnico eventos
Informe tecnico   eventosInforme tecnico   eventos
Informe tecnico eventos
 
4 manipular botones
4 manipular botones4 manipular botones
4 manipular botones
 

Similar a Ejemplo j internalframe_gine

Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Robert Wolf
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java juliancoruniversitec
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Ricardo Garcia
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNAnyeni Garay
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadorajbersosa
 
Curso java desde cero nivel i - modulo v
Curso java desde cero   nivel i - modulo vCurso java desde cero   nivel i - modulo v
Curso java desde cero nivel i - modulo vGiovanny Guillen
 
Informe tecnico unidad 2
Informe tecnico unidad 2Informe tecnico unidad 2
Informe tecnico unidad 2Irving Che
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicosKanddy Mobylml
 
Microcontroladores PIC: Implementación de una maquina de estados en un PIC
Microcontroladores PIC: Implementación de una maquina de estados en un PICMicrocontroladores PIC: Implementación de una maquina de estados en un PIC
Microcontroladores PIC: Implementación de una maquina de estados en un PICSANTIAGO PABLO ALBERTO
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing Laura
 
Proyecto sencillo con gui
Proyecto sencillo con guiProyecto sencillo con gui
Proyecto sencillo con guijbersosa
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5ggzhack
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportjbersosa
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De ControlUPS
 

Similar a Ejemplo j internalframe_gine (20)

Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4Manuales seminario java-manualdejava-sem 3 - 4
Manuales seminario java-manualdejava-sem 3 - 4
 
Programa simple java julian
Programa simple java julianPrograma simple java julian
Programa simple java julian
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01Miswing 110511215936-phpapp01
Miswing 110511215936-phpapp01
 
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓNTEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
TEMA Nº 8: CONTROL DE EJECUCIÓN Y MANTENIMIENTO DE SESIÓN
 
Guia4 java
Guia4 javaGuia4 java
Guia4 java
 
Programa calculadora
Programa calculadoraPrograma calculadora
Programa calculadora
 
Curso java desde cero nivel i - modulo v
Curso java desde cero   nivel i - modulo vCurso java desde cero   nivel i - modulo v
Curso java desde cero nivel i - modulo v
 
Layout
LayoutLayout
Layout
 
Java tema06a
Java tema06aJava tema06a
Java tema06a
 
Informe tecnico unidad 2
Informe tecnico unidad 2Informe tecnico unidad 2
Informe tecnico unidad 2
 
Informetecnicou2 topicos
Informetecnicou2 topicosInformetecnicou2 topicos
Informetecnicou2 topicos
 
Microcontroladores PIC: Implementación de una maquina de estados en un PIC
Microcontroladores PIC: Implementación de una maquina de estados en un PICMicrocontroladores PIC: Implementación de una maquina de estados en un PIC
Microcontroladores PIC: Implementación de una maquina de estados en un PIC
 
Clase xi
Clase xiClase xi
Clase xi
 
Java GUI La librería Swing
Java GUI La librería Swing Java GUI La librería Swing
Java GUI La librería Swing
 
Proyecto sencillo con gui
Proyecto sencillo con guiProyecto sencillo con gui
Proyecto sencillo con gui
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5
 
Continuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper reportContinuación 3 de la creación de reportes con jasper report
Continuación 3 de la creación de reportes con jasper report
 
Estructuras De Control
Estructuras De ControlEstructuras De Control
Estructuras De Control
 

Más de hrgamaliel

1111111111111111111111111.pptx
1111111111111111111111111.pptx1111111111111111111111111.pptx
1111111111111111111111111.pptxhrgamaliel
 
PROYECTO N 7 completo.docx
PROYECTO N 7 completo.docxPROYECTO N 7 completo.docx
PROYECTO N 7 completo.docxhrgamaliel
 
proyecto 7 tercera parte.docx
proyecto 7 tercera parte.docxproyecto 7 tercera parte.docx
proyecto 7 tercera parte.docxhrgamaliel
 
proyecto 7 segunda parte.docx
proyecto 7 segunda parte.docxproyecto 7 segunda parte.docx
proyecto 7 segunda parte.docxhrgamaliel
 
Edward maque p11
Edward maque p11Edward maque p11
Edward maque p11hrgamaliel
 
Clase 4 segunda unidad
Clase 4   segunda unidadClase 4   segunda unidad
Clase 4 segunda unidadhrgamaliel
 
Examen sensores complet
Examen sensores   completExamen sensores   complet
Examen sensores complethrgamaliel
 
Sensores examane 2 do
Sensores examane 2 doSensores examane 2 do
Sensores examane 2 dohrgamaliel
 
Resolucion espectral del multiespectral scahner mss
Resolucion  espectral del multiespectral scahner mssResolucion  espectral del multiespectral scahner mss
Resolucion espectral del multiespectral scahner msshrgamaliel
 
Examen sensores complet
Examen sensores   completExamen sensores   complet
Examen sensores complethrgamaliel
 
Cap iii prop indice_gm suelos_2020_ii
Cap iii prop indice_gm suelos_2020_iiCap iii prop indice_gm suelos_2020_ii
Cap iii prop indice_gm suelos_2020_iihrgamaliel
 
Cap ii orig formac_gm suelos_2020_ii
Cap ii orig formac_gm suelos_2020_iiCap ii orig formac_gm suelos_2020_ii
Cap ii orig formac_gm suelos_2020_iihrgamaliel
 
Cap i introducción gm suelos_2021_ii
Cap i introducción gm suelos_2021_iiCap i introducción gm suelos_2021_ii
Cap i introducción gm suelos_2021_iihrgamaliel
 
Sesion 6888888
Sesion 6888888Sesion 6888888
Sesion 6888888hrgamaliel
 

Más de hrgamaliel (15)

1111111111111111111111111.pptx
1111111111111111111111111.pptx1111111111111111111111111.pptx
1111111111111111111111111.pptx
 
PROYECTO N 7 completo.docx
PROYECTO N 7 completo.docxPROYECTO N 7 completo.docx
PROYECTO N 7 completo.docx
 
proyecto 7 tercera parte.docx
proyecto 7 tercera parte.docxproyecto 7 tercera parte.docx
proyecto 7 tercera parte.docx
 
proyecto 7 segunda parte.docx
proyecto 7 segunda parte.docxproyecto 7 segunda parte.docx
proyecto 7 segunda parte.docx
 
Edward maque p11
Edward maque p11Edward maque p11
Edward maque p11
 
Clase 4 segunda unidad
Clase 4   segunda unidadClase 4   segunda unidad
Clase 4 segunda unidad
 
Examen sensores complet
Examen sensores   completExamen sensores   complet
Examen sensores complet
 
Sensores examane 2 do
Sensores examane 2 doSensores examane 2 do
Sensores examane 2 do
 
Resolucion espectral del multiespectral scahner mss
Resolucion  espectral del multiespectral scahner mssResolucion  espectral del multiespectral scahner mss
Resolucion espectral del multiespectral scahner mss
 
Examen sensores complet
Examen sensores   completExamen sensores   complet
Examen sensores complet
 
Cap iii prop indice_gm suelos_2020_ii
Cap iii prop indice_gm suelos_2020_iiCap iii prop indice_gm suelos_2020_ii
Cap iii prop indice_gm suelos_2020_ii
 
Cap ii orig formac_gm suelos_2020_ii
Cap ii orig formac_gm suelos_2020_iiCap ii orig formac_gm suelos_2020_ii
Cap ii orig formac_gm suelos_2020_ii
 
Cap i introducción gm suelos_2021_ii
Cap i introducción gm suelos_2021_iiCap i introducción gm suelos_2021_ii
Cap i introducción gm suelos_2021_ii
 
Accion 1
Accion 1Accion 1
Accion 1
 
Sesion 6888888
Sesion 6888888Sesion 6888888
Sesion 6888888
 

Último

Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 

Último (20)

Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 

Ejemplo j internalframe_gine

  • 1. EjemploJInternalFrame ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JInternalFrame; import javax.swing.JLabel; public class EjemploJInternalFrame extends JInternalFrame { /* ÉSTE MAIN LO GENERA ECLIPSE PARA PRUEBAS, LO DEJO * COMENTADO PORQUE YA ESTÁ FUNCIONANDO Y SE EJECUTARÁ * DENTRO DE UN JDesktopPane COMO TODO BUEN JInternalFrame * TAMBIÉN SE PUEDE EJECUTAR DENTRO DE OTROS PANELES * PERO ESO NO SE SUELE UTILIZAR. public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { EjemploJInternalFrame frame = new EjemploJInternalFrame(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }*/ // ÉSTE ES EL CONSTRUCTOR DE LA CLASE public EjemploJInternalFrame() { // coordenadas con las dimensiones de la ventana setBounds(100, 100, 245, 134); // disposición de capas a nulo para poder posicionar // con coordenadas en vez de con el esquema determinado getContentPane().setLayout(null); // un etiqueta... JLabel lblstoEsUna = new JLabel("u00C9sto es una ventana interna..."); lblstoEsUna.setBounds(10, 11, 333, 14); getContentPane().add(lblstoEsUna); // el botón que cierra ésta ventana interna JButton btnAprietaAquPara = new JButton("Aprieta aquu00ED para cerrar"); btnAprietaAquPara.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // ésto se ejecuta cuando se aprieta el botón // manda la clase a la basura, // con lo que se cierra la ventana dispose(); } }); btnAprietaAquPara.setBounds(10, 36, 209, 58); getContentPane().add(btnAprietaAquPara);
  • 2. 48 49 50 51 52 53 54 55 } } Java + Swing020.Modo diseño enNetBeans.Llamarun jDialoginterno desdeun jFrame. Ejercicio:Realizarunapequeñaaplicaciónque permitaejecutarunformulariojDialoginterno desde unjFrame. Diseñamosel formularioenJFrame.El nombre parael jFrame esa criteriode cada uno, lo importante esel diseñode lamisma.Enla imagenpodemosverel diseñoylosnombresde variablesde cadaobjeto(etiquetasenrojoparalosnombresde variable),estoesmuy importante yaque cada métodoutilizael nombre de variablecorrespondienteparareferenciar al objetoenespecífico.Se puede cambiarel “Nombre de variable”de cadaobjetohaciendo clicderechosobre lamismay clic en“Cambiarnombre de variable…”. Diseñodel jDialog:adiferenciade enotrassituaciones,estejDialogdebe serinterno,portanto se agrega como cualquierotroobjeto,tomandode lapaletaysoltandosobre el diseñodel jFrame principal comose muestraenla imagenmásabajo,lo demásesigual a como se trabaja con un formulario.Se puede alternarconel del jFrame seleccionadodesde el “Inspector”al costadoizquierdo.(clicparaampliarimagen)
  • 3. Observación:Tomar en cuentaque hay que utilizarlasimportaciones“import”,básicopara utilizarciertosmétodosyobjetos.El “setLocationRelativeTo(null)”sirve paracentrarel formulario.Lasvariablesde clase se puedenllamardesde cualquiermétodo,portantose utilizaparaobjetosque se necesitanutilizarenvariasubicaciones. Creamoslosmétodossiguientesenel apartado“Fuente”.Normalmente estosmétodoslos podemosagregardebajodel constructordel jFrame oal final de la declaraciónde variables. Estos métodosutilizanconversionesde tiposde datos,controlesde excepcionesydemáspara controlarlo mejorposible el resultado.Se agregancomentariosparatratarde facilitarel entendimientodel funcionamientode cadacódigo. private void tableModel(){ //Configuramos tamaño de las columnas jTbl.getColumnModel().getColumn(0).setPreferredWidth(10); jTbl.getColumnModel().getColumn(1).setPreferredWidth(200); jTbl.getColumnModel().getColumn(2).setPreferredWidth(100); jTbl.getColumnModel().getColumn(3).setPreferredWidth(20); //Utilizamos nuestra variable model para asignar a nuestra tabla el Model model = (DefaultTableModel)jTbl.getModel(); model.setNumRows(0); //Cargamos datos en la tabla si los campos no estan vacios. //El signo ! sirve para negar. Por tanto decimos "si el campos es diferente de vacío". if(!nom.getText().isEmpty() || !nac.getText().isEmpty() || !edad.getText().isEmpty()){ for (int i = 0; i < 10; i++) { model.addRow(new Object[]{ i,nom.getText(),nac.getText(),edad.getText() }); } } } private void llamarJFrame(){ //Llamamos nuestra metodo para manejar la tabla y llenarla tableModel(); //Centramos nuestro jDialog jDialog.setLocationRelativeTo(null); //La hacemos modal jDialog.setModal(true); //Establecemos dimensiones.
  • 4. jDialog.setMaximumSize(new Dimension(800, 600)); jDialog.setMinimumSize(new Dimension(480, 230)); //Establecemos un título para el jDialog jDialog.setTitle("Lista de Datos."); //La hacemos visible. jDialog.setVisible(true); } Utilizamosel evento“ActionPerformed”parallamarlosmétodosdesde losbotones.Para utilizarun“Evento”hacemosclicderechosobre el objetoyseleccionamos“Eventos”de lalista utilizamoslaque podamosaplicaral objeto.Enlamayoría de loscasosse utilizael “ActionPerformed”.Se agregancomentariosparatratar de facilitarel entendimiento. private void mostrarActionPerformed(java.awt.event.ActionEvent evt) { //Método para llamar al jDialog llamarJDialog(); } Ejecutamosel formulariojFrame yllamamosanuestrojDialogdesde el botón.(clícpara ampliarimagen) JFrame. Existe un control Swing llamado Internal Frame que se utiliza para agregar Frames dentro otro. Sin embargo, debemos recordar que un Frame tiene propiedades tales como la barra de títulos, los botones de maximizar, minimizar y cerrar, coloca un nuevo ítem en la barra de tareas en Windows, KDE y Gnome, entre otras propiedades. Cabe destacar que muchas veces estos atributos no serán necesarios y entorpecerían el accionar de la aplicación. Muchas veces necesitamos unicamente un pequeño recuadro e insertarlo en uno u otro JFrame. Así que para esos efectos están los JPanels. Realizaremos un pequeño ejemplo con éstos. Vamos a realizar una pequeña aplicación, que consiste en realizar dos de las operaciones básicas: sumas y restas. Para realizar cada una de ellas, el JFrame añade
  • 5. entre sus componentes a dos JPanels, uno para cada operación respectivamente. Antes de mostrar cómo crear los JPanels, debemos de cambiar el layout al JFrame que utilizaremos. El Layout es una propiedad de los contenedores Swing para colocar todos los elementos que se contienen dentro de él. Como Java es multiplataforma, y en cada una de ella se disponen de manera distinta el orden de los elementos o componentes. Por lo tanto, Swing lo realiza con la ayuda de los layouts. En modo diseño del JFrame, hacemos click derecho a la opción Set Layout y le asignamos Null Layout, ya que nosotros colocaremos otro tipo de layout diferente al del diseño libre que nos brinda el editor de diseño de Netbeans. De esta forma: Ahora sí, creamos dos JPanels desde el navegador de proyectos, uno llamado panelHijoSuma y otro panelHijoResta. Deben quedar de la siguiente manera: Vean que el último TextBox se encuentra deshabilitado para que sea modificado por el usuario. Este solo presentará el resultado y el usuario jamás lo podrá tocar. Al JFrame, tal y como lo observaron al inicio de este artículo solo le agregamos una Menu Bar, y un par de ítems para que luzca así:
  • 6. Ahora, dentro del JFrame, en su constructor, y luego de la inicialización de componentes, vamos a establecer el layout a utilizar. Para este ejercicio, escogí el FlowLayout, que dispone un orden de los elementos horizontal uno tras otro y con cierto espaciado que podemos asignar. El código dentro del constructor deberá ser el siguiente: //Constructor public framePadre() { //llamo al constructor padre y le mando el nombre del título de la ventana super("Operaciones Básicas"); //Función de inicialización de componentes. Netbeans la coloca por defecto initComponents(); //Colocamos el nuevo tipo de layout que queremos que tenga nuestro JFrame this.setLayout(new FlowLayout()); } También creamos dos atributos al JFrame, para más facilidad. Serán dos atributos del tipo de datos de cada uno de los JPanel. private panelHijoSuma hs; private panelHijoResta hr; Ahora, en cada una de los ítems de la barra de menú, para mostrar el JPanel deseado, colocamos el siguiente código: //Nombre evento private void nSumaActionPerformed(java.awt.event.ActionEvent evt) { //Si ya está el otro Jpanel añadido al contenedor, entonces se elimina try{ this.remove(hr); } catch(Exception e){ } //Creamos una nueva instancia de panelHijoSuma hs = new panelHijoSuma(); //Agregamos la instancia al JFrame, con un layout al centro this.add(hs, BorderLayout.CENTER);
  • 7. //Hacemos que el JFrame tenga el tamaño de todos sus elementos this.pack(); } Este código debe de ser similar en los restantes ítems de la Menu Bar, siempre con el evento ActionPerformed. Ahora, la parte final de este artículo. Realizaremos cada una de las operaciones dentro del evento de los TextBox, KeyReleased(). De esta forma: Ahi agregaremos el siguiente código: //Nombre del evento. Lo genera Netbeans private void txtnum1KeyReleased(java.awt.event.KeyEvent evt) { //Asignamos el texto del textBox a una variable Integer int num1 = Integer.parseInt(this.txtnum1.getText()); //Si el otro TextBox no esta vacio, entonces se debe realizar la operación if (!this.txtnum2.getText().equals("")){ int num2 = Integer.parseInt(this.txtnum2.getText()); //Se realiza la operación, y se coloca en el TextBox del resultado this.txtresultador.setText(String.valueOf(num2+num1)); } } La aplicación debe lucir así:
  • 8. El mismo JFrame con uno y otro JPanel Espero que les sea útil este código. Ejemplo sencillo conJInternalFrame Saltar a: navegación,buscar Un JInternalFrame es una ventana que va metida dentro de un panel y no puede salirse de él. En java el panel adecuado y especializado en el manejo de JInternalFrame es el JDesktopPane. Vamos a hacer un ejemplo sencillo de uso. El siguiente código crea un JFrame con un JDesktopPane dentro. Luego se crea una ventana JInternalFrame que tiene un JLabel y un JTextField. El JInternalFrame se mete dentro del JDesktopPane y se visualiza todo. Es importante darle tamaño al JInternalFrame, ya que si no, no lo veremos -tiene tamaño 0,0-. Por defecto el JInternalFrame no es redimensionable, ni se puede cerrar ni tiene botones de maximizar y minimizar. Tendremos que decirle con los métodos adecuados si queremos que tenga esas características. También es importante hacer visible a posta el JInternalFrame, ya que por defecto es oculto. /** * Ejemplo de uso de un JInternalFrame */ package chuidiang.ejemplos; import java.awt.FlowLayout; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.WindowConstants; /** * Instancia un JFrame con un JDesktopPane y dentro de este * un JInternalFrame. * @author chuidiang *
  • 9. */ public class PruebaInternalFrame { /** Instancia esta clase */ public static void main(String[] args) { new PruebaInternalFrame(); } /** * Crea el JFrame, el JDesktopPane, un JInternalFrame de * muestra y lo visualiza. */ public PruebaInternalFrame() { // El JFrame con el JDesktopPane JFrame v = new JFrame("Prueba JInternalFrame"); JDesktopPane dp = new JDesktopPane(); v.getContentPane().add(dp); // Se construye el panel que ira dentro del JInternalFrame JPanel p = new JPanel(); p.setLayout(new FlowLayout()); p.add (new JLabel("Una etiqueta")); p.add (new JTextField(10)); // Se construye el JInternalFrame JInternalFrame internal = new JInternalFrame("Un Internal Frame"); internal.add(p); // Es importante darle tamaño -pack()- al JInternalFrame, // porque si no, tendrá tamaño 0,0 y no lo veremos. internal.pack(); // Por defecto el JInternalFrame no es redimensionable ni // tiene el botón de cerrar, así que se lo ponemos. internal.setResizable(true); internal.setClosable(true); // Se mete el internal en el JDesktopPane dp.add(internal); // Se visualiza todo. v.setSize(500,500); v.setVisible(true); v.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // Se visualiza el JInternalFrame internal.setVisible(true); } }