yaqui.mxl.uabc.mxyaqui.mxl.uabc.mx/~pooi/sem04-2/practica10.pdf · la interfase que te proporciona...

16
Fecha de efectividad: __________________ UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) DOCUMENTO DEL SISTEMA DE CALIDAD Formuló ISC Jesús Alberto Herrera Rangel Revisó M.C. Gloria E. Chavez Valenzuela Aprobó Autorizó M.C. Miguel Ángel Martínez Romero Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad Código GC-N4-017 . Página 1 de 16 Revisión 0 . IC 2003-1 5033 Programación Orientada a Objetos I 10 Programación de Interfaces Gráficas de Usuario (GUI) 2 1 INTRODUCCIÓN Es difícil pensar en que una aplicación desarrollada actualmente, sea atractiva para los usuarios si carece de una interfaz amigable e intuitiva. Las interfaces de modo “texto” o en “líneas de comandos” difícilmente pueden tener estas características. Hoy en día las aplicaciones en modo gráfico no son solamente más atractivas, sino que también le permiten al usuario ser más productivo, ya que es más fácil tener más elementos (componentes) dentro de una misma vista (ventana) y también ayudan a evitar que datos erróneos ingresados por los usuarios sean procesados, lo cuál puede costar tiempo de procesamiento y de transmisión de datos. 2 OBJETIVO (COMPETENCIA) El alumno conocerá los principales componentes que proporciona el API de Java para crear aplicaciones en un ambiente gráfico. Además de comprender el concepto de “programación orientada a eventos”. 3 FUNDAMENTO ¿Que es Swing? En las primeras versiones de Java, Sun Microsystems proporcionó a los desarrolladores un conjunto de clases para el desarrollo de interfases gráficas llamado AWT (Abstract Windowing Toolkit). AWT fué un avance significante para su epoca, sin embargo, el mal diseño de su arquitectura, la cantidad de "bugs" que este contenía y sobre todo, la enorme cantidad de recursos que tomaba, forzaron a Sun a desarrollar una nueva versión de los componentes gráficos. Este nuevo paquete de clases se llama Swing.

Upload: tranmien

Post on 19-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

��������� � �� � ��� � � � �

�� �� ��� � � �� � ���

� � � � ��� ��� ��� � � �� � ���

IC 2003-1 5033 Programación Orientada a Objetos I

� �� �� ���

� � ��� �� � ��� � � � � �� �

� ��� � � ��� � ����

10 � � � � ��� ��� ��� �� �� ���

Programación de Interfaces Gráficas de Usuario (GUI) 2

1 INTRODUCCIÓN Es difícil pensar en que una aplicación desarrollada actualmente, sea atractiva para los usuarios si

carece de una interfaz amigable e intuitiva. Las interfaces de modo “texto” o en “líneas de comandos” difícilmente pueden tener estas características. Hoy en día las aplicaciones en modo gráfico no son solamente más atractivas, sino que también le permiten al usuario ser más productivo, ya que es más fácil tener más elementos (componentes) dentro de una misma vista (ventana) y también ayudan a evitar que datos erróneos ingresados por los usuarios sean procesados, lo cuál puede costar tiempo de procesamiento y de transmisión de datos.

2 OBJETIVO (COMPETENCIA)

El alumno conocerá los principales componentes que proporciona el API de Java para crear aplicaciones en un ambiente gráfico. Además de comprender el concepto de “programación orientada a eventos”.

3 FUNDAMENTO ¿Que es Swing?

En las primeras versiones de Java, Sun Microsystems proporcionó a los desarrolladores un conjunto de clases para el desarrollo de interfases gráficas llamado AWT (Abstract Windowing Toolkit). AWT fué un avance significante para su epoca, sin embargo, el mal diseño de su arquitectura, la cantidad de "bugs" que este contenía y sobre todo, la enorme cantidad de recursos que tomaba, forzaron a Sun a desarrollar una nueva versión de los componentes gráficos. Este nuevo paquete de clases se llama Swing.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO A los componentes de Swing también se les conoce como "Lightweight Components" (Componentes Ligeros) a diferencia de AWT que se les conoce como "Heavyweight Components". Esto es por la mejora que se les hizo en cuanto a consumo de recursos se refiere. No todos los componentes de Swing son tan "ligeros", existen algunos que dada su naturaleza, es imposible hacerlos de esta manera.

Tal como en AWT todos los componentes son derivados de la clase Component, en Swing todos los componentes son derivados de la clase JComponent. ( La mayoria de los componentes que se reescribieron, se les diferencía de los componentes AWT porque los nombres de las clases comienzan con "J").

Los componentes principales para una aplicación gráfica son: JFrame, JApplet, JDialog y JWindow. Estos son paneles principales que contienen otros paneles hijos donde se colocan todos los demás componentes visuales como botones, cajas de texto, etc. Estos componentes hijos son: JRootPane, JLayeredPane, ContentPane, etc, son los que se encargan de hacer todo el trabajo gráfico.

Manejo de Eventos

Uno de los principales objetivos de la programación gráfica es permitirle al usuario interactuar con la aplicación, y esa interacción se programa en los eventos. Cuando un usuario realiza alguna acción - como dar un click a un botón, cerrar una ventana, seleccionar un objeto de una lista, o simplemente mover el mouse - Java considera eso como un evento.

Crear un Proyecto GUI en Net Beans

Despues de montar un "Local Directory" para trabajar con esta práctica, selecciona "NEW > JFrame Form" y escribe el nombre de la clase principal.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

La interfase que te proporciona NetBeans es una parte visual donde se podrán seleccionar los componentes de la paleta de componentes, y la otra es texto, donde se podrá escribir el código de la aplicación.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

Para insertar los componentes solo hay que dar click en alguno dentro de la paleta de componentes visuales y despues dar un click en la ventana de la forma.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

Cuando se ha insertado un componente, se proporciona tambien las "propiedades" de dicho objeto. Aquí se pueden editar muchos de los atributos como color, tamaño, texto que despliega etc.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

Antes de Comenzar a colocar los componentes, debemos seleccionar un tipo de LayeredPane, que es como vamos a distribuir nuestros componentes gráficos en la forma. NetBeans proporciona un Layout que resultará muy sencillo de utilizar al momento de colocar los componentes y distribuirlos en la ventana.... "Absolute Layout".

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

Para colocar los componentes, es recomendable insertar los componentes en varios JPanel (ContentPane).

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

Código Automático

Una de las grandes ventajas de utilizar un IDE visual como Net Beans, es que el mismo programa escribe el código por nosotros. Ahorrandonos así tiempo al programar. No todo el código fuente es desarrollado de forma automática, solo el código para formar la "interfase visual" que presentará nuestro programa al usuario final, es decir... el código de la parte funcional sigue siendo parte de nuestro trabajo. Para poder hacer esto, NetBeans agrega ciertos

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO comentarios a nuestros archivos .java que nosotros no podremos ver. Estos comentarios o "etiquetas", le permiten al IDE encontrar las partes del código que fueron escritas de manera automática. Net Beans no nos permitirá modificar el código que escribe el IDE. Y para poderlo identificar, el código protegido aparece sombreado en azul, y las partes en donde se nos permite codificar aparecen en blanco.

Programar eventos en NetBeans Para aprovechar mejor el poder del IDE de NetBeans, pondremos como ejemplo la creación de eventos. Basta con saber que es lo que queremos que pase cuando el usuario haga algo con algunos de los componentes de la ventana. Por ejemplo, si deseamos que se ejecute algún proceso o método cuando el usuario de click a un botón, podremos seleccionar en el IDE dicho botón con un click derecho, y NetBeans nos mostrará un menú. Seleccionamos "Events" y el tipo de evento que queremos programar como "mouse" y dentro de mouse seleccionamos "mouseClicked" para indicar que deseamos programar algo para que se ejecute cuando el usuario dá click en el botón.

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

A continuación se presentan algunos ejemplos sencillos de aplicaciones con JFrame:

JFrame Este programa presenta una ventana con JFrame y un texto dentro de ella.

import javax.swing.JFrame;

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO import javax.swing.JLabel;

public class HelloWorldSwing {

public static void main(String[] args) {

JFrame frame = new JFrame("Titulo de la Ventana"); final JLabel label = new JLabel("Hola Mundo Cuel "); frame.getContentPane().add(label); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true);

}

}

JButton Este programa presenta una ventana con un botón. Al presionar el botón se hace sonar la bocina de la computadora.

import javax.swing.JFrame; import javax.swing.JButton;

import java.awt.Toolkit; import java.awt.BorderLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent;

public class Beeper extends JFrame implements ActionListener {

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO JButton button;

public static void main(String args[]){ new Beeper(); } Beeper(){ button = new JButton("Click Me"); getContentPane().add(button, BorderLayout.CENTER); button.addActionListener(this); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setVisible(true); this.show(); }

public void actionPerformed(ActionEvent e) { Toolkit.getDefaultToolkit().beep(); }

}

Cajas de Dialogo Este programa presenta una caja de texto y un botón. Al presionar el botón, se muestra una "caja de dialogo" con el texto que el usuario escribió en la caja de texto.

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class MiDialog extends JFrame implements ActionListener{

String msg;

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO JTextField texto; /** Creates a new instance of MiDialog */ public MiDialog() { super("Titulo de la Ventana"); JPanel contentPane = new JPanel(new BorderLayout()); texto = new JTextField(10); JButton boton = new JButton("Click me!"); boton.addActionListener( this ); contentPane.add(texto, BorderLayout.NORTH ); contentPane.add(boton, BorderLayout.CENTER); this.setContentPane(contentPane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setVisible(true); }

public static void main(String[] argv) { new MiDialog(); } public void actionPerformed(ActionEvent e) { msg = texto.getText(); JOptionPane.showMessageDialog(this,"Esto es lo que escrebiste: "+msg,"Titulillo", JOptionPane.PLAIN_MESSAGE); }

}

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

3 FUNDAMENTO

4 PROCEDIMIENTO (DESCRIPCIÓN)

A EQUIPO NECESARIO MATERIAL DE APOYO

Computadoras con NetBeans instalado Práctica Impresa API de Java

B DESARROLLO DE LA PRÁCTICA

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

4 PROCEDIMIENTO (DESCRIPCIÓN)

Diario Personal

Hacer un programa que presente en una ventana un calendario y una caja de texto. En el calendario deberán aparecer los días del mes actual y el nombre del mes en la parte superior. Cuando el usuario seleccione alguno de los dias, se deberá mostrar un área de texto, un botón y el día que se ha seleccionado. El usuario podrá introducir todo lo que ha hecho en el día. Cuando presione el botón, el programa guardará el texto en un archivo y volverá a mostrar el calendario. Cuando el usuario vuelva a seleccionar un día donde ya se haya guardado información, se mostrará el texto que escribió únicamente (aún si el usuario cerró abrió la aplicación). El calendario deberá también tener la opción de permitir seleccionar otro mes por medio de dos botones para ir al mes anterior y al siguiente.

La aplicación podría verse algo así:

Fecha de efectividad: __________________ �

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)

DOCUMENTO DEL SISTEMA DE CALIDAD

�������������������� ��������������

Formuló

ISC Jesús Alberto Herrera Rangel

Revisó

M.C. Gloria E. Chavez Valenzuela

Aprobó Autorizó

M.C. Miguel Ángel Martínez Romero

Maestro Coordinador de la Carrera Gestión de la Calidad Director de la Facultad

Código GC-N4-017 . Página 1 de 16 Revisión 0 .

C CÁLCULOS Y REPORTE

5 RESULTADOS Y CONCLUSIONES

6 ANEXOS

Java 2 SE Online API Specification http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/package-summary.html http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html