Sunteți pe pagina 1din 29

Asignatura: Programación Orientada a Objetos II.

 
 Alumno: Raúl Edgar Hernández Villegas
Matricula: ES162005431

Profesor:  Amadeo Coporo Quintana


 
UNADM Desarrollo de Software
 
 Unidad 2. Actividad 3. Contenedores y controladores.

Fecha: 13/02/2018
Índice:
Introducción…………………….…………………………….3
Ejercicio 1………………………………………….…………..4
Ejercicio 2………………………. ……………………………15
Ejercicio 3………………………. ……………………………17
Ejercicio 4………………………. ……………………………17
Ejercicio 5………………………. ……………………………18
Ejercicio 6………………………. ……………………………21
Conclucion…………………………………………….........28
Bibliografía…………………………………………………….29
07/14/2020 2
Introducción:

Swing abarca componentes como botones, tablas, marcos, etc. Los componentes Swing se identifican
porque pertenecen al paquete javax.swing. Antes de la existencia de Swing, las interfaces gráficas con el
usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo
de eventos.
Una aplicación Swing se construye mezclando componentes con las siguientes reglas:

Debe existir, al menos, un contenedor de alto nivel (TopLevel Container), que provee el soporte que las
componentes Swing necesitan para el pintado y el manejo de eventos.

Otras componentes colgando del contenedor de alto nivel (éstas pueden ser contenedores o
componentes simples).

(“uv.mx”, 2013)

07/14/2020 3
1. Investiga y crea una presentación de los diferentes contenedores, y controladores que
existen en JAVA.
JFrame – Este contenedor es uno de los principales y mas usados, representa la ventana
Principal de nuestra aplicación, en el podemos alojar otros contenedores y podemos abrir
otros contenedores, este contenedor estará en el fondo siempre activo por eso es la
ventana principal.
(“Cristian Henao” , 2013)
Para darnos un ejemplo de como funciona esta pantalla podemos abrir cualquier aplicación
de office por ejemplo Word, ese seria el menú Principal
(“Raul Hernandez”,2018)

07/14/2020 4
JDialog – Este contenedor representa una ventana de tipo Ventana de diálogo o Emergente,
también puede ser un contenedor principal aunque es mas recomendable dadas sus
propiedades, que sea usada como ventana secundaria, es decir, un JFrame como ventana
Principal y el resto de ventanas como un Jdialog.
(“Cristian Henao” , 2013)
Para darnos un ejemplo de como funciona esta pantalla podemos abrir cualquier aplicación
de office por ejemplo Word, ese seria el menú Principal, si damos click en el menú ABRIR se
abrirá una pantallita para buscar nuestro archivo, esta pantalla no nos deja acceder al menú
principal a menos que elijamos nuestro documento o cerremos esto es por esta pantalla no
puede existir sin que primero iniciemos nuestro menú principal en Word
(“Raul Hernandez”,2018)

07/14/2020 5
JPanel – Este contenedor es uno de los mas simples, permite la creación de paneles
independientes donde se almacenan otros componentes, de esta manera decidimos que
elementos se alojan en que paneles y dado el caso podemos usar sus propiedades para
ocultar, mover o delimitar secciones... cuando alojamos elementos en un panel, los cambios
mencionados se aplican a todo su conjunto...es decir, si nuestro panel tiene 5 botones y
ocultamos solo el panel, los botones también se ocultan.
(“Cristian Henao” , 2013)

07/14/2020 6
JScrollPane – Este contenedor permite vincular barras de scroll o desplazamiento en
nuestra aplicación, puede ser utilizado tanto en paneles como en otros componentes como
un JTextArea, hay que tener en cuenta que no es simplemente poner un scroll, es alojar el
componente (en este caso panel o área de texto) en el JScrollPane.
(“Cristian Henao” , 2013)
También usado en el componente Jtable para cuando los datos son mas largos o lo que
visualizamos tiene mas filas de las que podrían estar en dicho elemento, esto nos permite
movernos de izquierda a derecha o de arriba abajo.
(“Raul Hernandez”,2018)

07/14/2020 7
JSplitPane – Este componente permite la creación de un contenedor dividido en 2
secciones, muchas veces usado en aplicaciones donde una sección presenta una lista de
propiedades y otra sección presenta el elemento al que le aplicamos dicha lista....cada
sección puede ser manipulada por aparte y redimensionar sus componentes (Mas utilizado
cuando se trabaja con layouts).
(“Cristian Henao” , 2013)

07/14/2020 8
JTabbedPane – Este tal vez sea otro de los componentes mas usados, permite la creación de
una pestañas en nuestra ventana, cada pestaña representa un contenedor independiente
donde podemos alojar paneles u otros elementos.
(“Cristian Henao” , 2013)

07/14/2020 9
JDesktopPane – Este contenedor aloja componentes de tipo JInternalFrame, estos
representan ventanas internas, permitiendo así crear ventanas dentro de una ventana
principal, al momento de su creación podemos manipular sus propiedades para definir si
queremos redimensionarlas, cerrarlas, ocultarlas entre otras.
También podemos definir una posición inicial de cada ventana interna, sin
embargo después de presentadas podemos moverlas por toda la ventana Principal donde
se encuentran alojadas.
(“Cristian Henao” , 2013)

07/14/2020 10
JToolBar – Este contenedor representa una Barra de herramientas dentro de nuestra
aplicación, en el podemos alojar diferentes componentes que consideremos útiles, botones,
checkbox, radios, campos entre otros. Esta barra de herramientas puede ser manipulada
permitiendo cambiar su ubicación con tan solo arrastrarla al extremo que queramos, o
sacarla de la ventana para que nuestras opciones se encuentren como una ventana
independiente.
(“Cristian Henao” , 2013)

07/14/2020 11
Tipos de controladores JDBC

Los tipos de controladores se definen en categorías según la tecnología utilizada para


conectarse a la base de datos. Los proveedores de controladores JDBC utilizan estos tipos
para describir cómo operan sus productos. Algunos tipos de controladores JDBC son más
adecuados que otros para algunas aplicaciones.

Tipo 1
Los controladores de tipo 1 son controladores "puente". Utilizan otra tecnología, como por
ejemplo, ODBC (Open Database Connectivity), para comunicarse con la base de datos. Esto
representa una ventaja, ya que existen controladores ODBC para muchas plataformas
RDBMS (sistemas de gestión de bases de datos relacionales). Se emplea la interfaz Java
nativa (JNI) para llamar a funciones ODBC desde el controlador JDBC.
Un controlador de tipo 1 debe tener el controlador puente instalado y configurado para
poder utilizar JDBC con él. Esto puede representar un grave inconveniente para una
aplicación de producción. Los controladores de tipo 1 no pueden utilizarse en un applet, ya
que los applets no pueden cargar código nativo.

(“IBM Knowledge Center”)


07/14/2020 12
Tipos de controladores JDBC

Tipo 2
Los controladores de tipo 2 utilizan una API nativa para comunicarse con un sistema de base
de datos. Se utilizan métodos Java nativos para invocar las funciones de API que realizan
operaciones de base de datos. Los controladores de tipo 2 son generalmente más rápidos
que los controladores de tipo 1.
Los controladores de tipo 2 necesitan tener instalado y configurado código binario nativo
para funcionar. Un controlador de tipo 2 siempre utiliza JNI. Los controladores de tipo 2 no
pueden utilizarse en un applet, ya que los applets no pueden cargar código nativo. Un
controlador JDBC de tipo 2 puede requerir la instalación de algún software de red DBMS
(sistema de gestión de bases de datos).
El controlador JDBC de Developer Kit para Java es de tipo 2.

(“IBM Knowledge Center”)

07/14/2020 13
Tipos de controladores JDBC

Tipo 3
Estos controladores utilizan un protocolo de red y middleware para comunicarse con un
servidor. A continuación, el servidor convierte el protocolo a llamadas de función DBMS
específicas de DBMS.
Los controladores de tipo 3 son la solución JDBC más flexible, ya que no requieren ningún
código binario nativo en el cliente. Un controlador de tipo 3 no necesita ninguna instalación
de cliente.
Tipo 4
El controlador de tipo 4 utiliza Java para implementar un protocolo de red de proveedores
de DBMS. Puesto que los protocolos son generalmente de propiedad, los proveedores
DBMS son generalmente las únicas empresas que suministran un controlador JDBC de tipo
4.
Los controladores de tipo 4 son todos ellos controladores Java. Esto significa que no existe
ninguna instalación ni configuración de cliente. Sin embargo, un controlador de tipo 4
puede no ser adecuado para algunas aplicaciones si el protocolo subyacente no maneja
adecuadamente cuestiones tales como la seguridad y la conectividad de red.
(“IBM Knowledge Center”)
07/14/2020 14
2. Identifica y enúncialos en una tabla los diferentes contenedores y controles gráficos
que existen o que utilizarías para resolver la problemática.
Elemento Justificacion de uso
JFRAME Este contenedor nos servirá para crear el menú principal de nuestro
proyecto, de este partiremos para abrir diferentes ventanas.
JMENUBAR Este elemento lo utilizare para formar la barra de menú principal superior
y desplegar los diferentes menús disponibles
JMENU Este elemento lo utilizare para desplegar las diferentes opciones por cada
menú en este caso solo estará “Menú Principal”
JMENUITEM Se usa para definir las diferentes opciones dentro de nuestro JMENU
Tendremos 4 (Ventas, Inventario, Personal y salir)
JLABEL Tendrá dos usos en diferentes contenedores en el JFRAME es usado para
poner una imagen de fondo con SETICON, en el JDIALOG será etiquetas
para indicar que elemento va en el campo de texto
JDIALOG Por el momento solo tenemos la ventana VENTAS esta ventana de dialogo
nos permitirá acceder a las opciones de ventas en este caso tendremos
JLABEL y JTEXTFIELD dentro de este contenedor.
07/14/2020 15
Elemento Justificacion de uso
JTEXTFIELD Este elemento nos servirá para obtener los datos que desea introducir el
usuario al sistema por ejemplo el precio o la marca del producto.
JBUTTON Este elemento es muy importante para ejercer la acción de CLICK, es la
comunicación con el usuario para realizar alguna acción ya sea limpiar
campos, guardar en base de datos o actualizar, etc.

07/14/2020 16
3. Crear la interfaz gráfica con en NetBeans 7.1 o superior, con el menú principal (Ventas,
Inventarios, Personal y Salir ), se va utilizar el submenú Ventas, para ello debe realizar lo
siguiente:

Crear tres tablas una de Ventas, Inventario y Personal


En la tabla de ventas se van a crear tres campos Artículo, Precio y Marca

Se anexa la BD al no tener los campos que tendrán las tablas inventario y personal solo se
crea la tabla ventas dentro de la base de datos unadm con sus respectivos campos
indicados

4. Programa la interfaz gráfica crear en el submenú Ventas un Jframe Form dentro de ese
Form, se va crear un formulario y crear tres Label, Articulo, Label Precio y Label Marca, y
para introducir datos un TextField en cada etiqueta utilizando Contenedores y controles.

07/14/2020 17
5. Envía las capturas de pantallas que permitan entender mejor tu proyecto, es
importante que en cada captura de pantalla agregues una descripción para conocer a
detalle el seguimiento de lo que estas realizando el tu proyecto.

En el menú principal usamos el elemento (Menu Swing) JMenuBar el cual nos permite la
utilización de submenús como estamos cotidiana mente acostumbrados a nuestra barra de
menús es cualquier programa. Dentro de esta barra se encuentra JMenuItem para poder
hacer las opciones que están disponibles en ese menú, (se puede tener mas opciones en el
menú bar, así como los ítems). Para este ejercicio se personaliza un poco con un fondo de
pantalla de acuerdo con la materia, este se coloca en un Jlabel y el título de la ventana, en
el menú ítem SALIR podemos observar que tiene ESCAPE esta tecla fue configurada en el
elemento para poder presionar dicha tecla y salir del sistema.
Se añade un JDialog para mostrar el menú Ventas, por lo que en el JFrame que es nuestra
ventana principal añadimos el código en el JMenuItem para llamar a la Interfaz Ventas y
hacer la visible dentro de esta, podemos encontrar 3 JLabel que son las etiquetas para saber
de que son las cajas de texto o que datos introducir (Articulo, Precio, Marca), 3 JTextField
respectivamente aun lado de los JLabel para que el usuario introduzca datos al sistema, de
igual forma que en el menú principal se añade una imagen de fondo de forma “estética”.

07/14/2020 18
Para identificar al JFrame podemos observar que este se encuentra de fondo (no
desaparece ya que es el “padre”) y tiene los 3 botones minimizar, maximizar y cerrar, el
JDialog podemos observar lo por delante de JFrame y este a su vez solo tiene un botón que
es cerrar, esto nos garantiza que, aunque cerremos el JDialog nuestra aplicación no se
cerrara (hasta cerrar el JFrame).

07/14/2020 19
07/14/2020 20
6. Documenta el código que estas realizando el NetBeans, es muy importante que
copies y pegues el código que estas realizando y hagas la descripción a detalle de cada
sección de tal manera que cualquier persona lo pueda entender, si realizas captura de
pantalla del programa tienes cero en este punto.

public class DPO2_U2_A3_RAHV {


public static void main(String[] args) {
//se crea un objeto y se inicializa el constructor
//por defecto de la clase JFrame
//sea asigna espacio de memoria para su visualizacion.
Menu ventana = new Menu();
//utilizamos el metodo setLocationRelativeTo para
//centrar la pantalla en el monitor donde se visualiza
ventana.setLocationRelativeTo(null);
//colocamos titulo a nuestra ventana
ventana.setTitle("Menu Principal – Unidad 2 Actividad 3 - Raúl Hernández");
//hacemos visible el objeto con setvisible
ventana.setVisible(true);
}
}
07/14/2020 21
Hare una pausa ya que en el constructor de la clase JFrame se encuentra el método
initComponents el cual inicializa los elementos gráficos de la clase a pesar de que el
contenido del código no lo escribimos nosotros este es desarrollado cada que agregamos
un elemento.
private void initComponents() {
//podemos observar la declaración de los objetos de sus respectivos elementos swing
jLabel1 = new javax.swing.JLabel();
jMenuBar1 = new javax.swing.JMenuBar();
MenuPrin = new javax.swing.JMenu();
Menu_Ventas = new javax.swing.JMenuItem();
Menu_Inventario = new javax.swing.JMenuItem();
Menu_Personal = new javax.swing.JMenuItem();
Menu_Salir = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
//observamos que yo coloque una imagen en el objeto JLabel1 la cual se ingresa en esta
línea con setIcon creando una instancia y dando la dirección de donde se encuentra, se
encuentra dentro de la carpeta Imágenes dentro del proyecto.
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/java-
aprende.jpg"))); // NOI18N
07/14/2020 22
//se repite paso 2
Menu_Inventario.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Menu_InventarioActionPerformed(evt);
}
});
//se repite paso 3
MenuPrin.add(Menu_Inventario);
//se repite paso 1
Menu_Personal.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
Menu_Personal.setText("Personal");
//se repite paso 2
Menu_Personal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Menu_PersonalActionPerformed(evt);
}
});
//se repite paso 3
MenuPrin.add(Menu_Personal);
07/14/2020 23
Paso 1//observamos los cambios que le hice a la barra de menús como el nombre y el tipo
de letra, tamaño
MenuPrin.setText("Menu Principal");
MenuPrin.setFont(new java.awt.Font("Arial", 1, 24)); // NOI18N
  Menu_Ventas.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
Menu_Ventas.setText("Ventas");
Paso 2//aquí observamos el evento y su listener u oyente en este caso será una acción de
clic por lo que se llama a action event que utiliza el método actionPerformed este recibe un
objeto que es el click este método será llamado posteriormente
Menu_Ventas.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Menu_VentasActionPerformed(evt);
}
});
Paso 3//por último agrega dicho menú
MenuPrin.add(Menu_Ventas);
//se repite paso 1
Menu_Inventario.setFont(new java.awt.Font("Arial", 0, 18)); // NOI18N
Menu_Inventario.setText("Inventario");
07/14/2020 24
//aquí observamos que asignamos el evento de tecla “ESCAPE” siendo este de tipo
KeyEvent
Menu_Salir.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK
_ESCAPE, 0));
//se repite paso 1
Menu_Salir.setFont(new java.awt.Font("Arial", 1, 18)); // NOI18N
Menu_Salir.setText("Salir");
//se repite paso 2
Menu_Salir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
Menu_SalirActionPerformed(evt);
}
});
//se repite paso 3
MenuPrin.add(Menu_Salir);
Agrega los elementos a la barra Principal
jMenuBar1.add(MenuPrin);
setJMenuBar(jMenuBar1);
dibuja un layaut que será el contenedor de nuestros elementos de forma horizontal y
vertical definido el tamaño de nuestro Jframe
07/14/2020 25
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
 
pack();
}
Este método no se puede sobrescribir en NetBeans solo por medio de los elementos que
agregamos de la paleta de elementos como los Swing este método crece entre mas
elementos (objetos) tenga, así como las acciones.

07/14/2020 26
Posteriormente procedemos a realizar el llamado del evento click de los elementos creados
en el método initcomponets
private void Menu_SalirActionPerformed(java.awt.event.ActionEvent evt) {

//Al momento de realizarse la acción el sistema ejecutara el código en este caso salir
del sistema
System.exit(0);
}
private void Menu_VentasActionPerformed(java.awt.event.ActionEvent evt) {

//Al momento de realizarse la acción el sistema ejecutara el código que será el acceso a
la clase Ventas se crea un objeto y se inicializa el constructor por defecto de la clase JDialog
el cual no es vacío sea asigna espacio de memoria para su visualización.
Ventas ventana = new Ventas(null, true);
//utilizamos el metodo setLocationRelativeTo para centrar la pantalla en el monitor
donde se visualiza
ventana.setLocationRelativeTo(null);
//colocamos titulo a nuestra ventana
ventana.setTitle("Menu Ventas");
//hacemos visible el objeto con setvisible
07/14/2020 27
ventana.setVisible(true);
private void Menu_InventarioActionPerformed(java.awt.event.ActionEvent evt) {

//Al momento de realizarse la acción el sistema ejecutara el código en este caso una
ventana emergente de la clase JOptionPane que simula el acceso hacia ese menú
JOptionPane.showMessageDialog(null, "Accediendo al Menú Inventario");
}
private void Menu_PersonalActionPerformed(java.awt.event.ActionEvent evt) {

//Al momento de realizarse la acción el sistema ejecutara el código en este caso una
ventana emergente de la clase JOptionPane que simula el acceso hacia ese menú
JOptionPane.showMessageDialog(null, "Accediendo al Menú Personal");
}

Conclusión:
La creación de diferentes interfaces nos ayuda a la organización de nuestro programa, el ir
añadiendo código a nuestro proyecto de la unidad 1 nos ahorra tiempo valioso siempre y
cuando tengamos los temas comprendidos, en este caso no agrego el método
initComponents del JDialog esto es porque es muy extenso y es similar a lo ya explicado del
JFrame, cambia el nombre de los elementos, la posición, el tipo de letra, tamaño, etc. Pero
los métodos son similares (por el nombre) para hacer el oyente y estar listo para el evento,
07/14/2020 28
este método se hace mas grande cuantos mas elementos pongamos.
Bibliografía:

-. (2013). Uso de Java Swing. Noviembre de 2013, de uv Sitio web:


https://www.uv.mx/personal/mansuarez/files/2013/08/Uso-de-Java-Swing.pdf

Cristian Henao . (2013). Componentes Java Swing. 1 de septiembre de 2013, de blogspot


Sitio web: http://codejavu.blogspot.mx/2013/09/componentes-java-swing.html

Fernando Ureña Gómez. (2014). Tipos de componentes gráficos en Java. 17/09/2014, de


discoduroderoer Sitio web:
https://www.discoduroderoer.es/tipos-de-componentes-graficos-en-java/

07/14/2020 29