Sunteți pe pagina 1din 39

Tópicos Avanzados de

Programación
Tema II
Componentes y Librerías

MRYSI: Ángel Salas Martinez


asalas@tecmartinez.edu.mx
Contenido

Componentes y librerías

2.1 Definición conceptual de componentes, paquetes/ Librerías.


2.2 Uso de librerías proporcionadas por el lenguaje
2.3 Creación de componentes (Visuales y no visuales) definidos
por el usuario.
2.4 Creación de paquetes / librerías definidas por el usuario.
3.1 Definición conceptual de
componentes, paquetes/ Librerías.
Componente:
Es una clase abstracta que representa todo lo que tiene una
posición, un tamaño, puede ser pintado en pantalla y puede
recibir eventos.
Es el elemento básico de una interfaz gráfica. Los componentes
permiten al usuario interactuar con la aplicación y proporcionar
información desde el programa al usuario sobre el estado de la
aplicación
La principal diferencia, respecto a una clase normal, es que la
mayor parte del trabajo lo podemos hacer de forma visual, con el
ratón y ajustando las opciones que se nos ofrece en nuestro
entorno.
Componentes

Existen realmente dos conjuntos de componentes GUI en Java;

abstract window toolkit (AWT)

java.awt.

Swing la Java Foundation Class (JFC);

java.swing.
Componentes
AWT
Depende de la plataforma, esto quiere decir que la
imagen que muestra un componente gráfico depende
de su ejecución en un sistema operativo o en otro.
Swing aparece en Java 2 y es independiente de la
plataforma sobre la que se ejecuta; con swing el
aspecto de los elementos de la interfaz gráfica es el
mismo en todas las plataformas.

Swing
Es el conjunto de clases, interfaces, recursos, etcétera, para la
construcción de gráficos, también conocidos como IGU o GUI;
contiene tres API: uno para 2D, otro para arrastrar y soltar y el
último para facilitar el acceso.
Jerarquía de componentes
Paquetes de las API de Java

La biblioteca de clases de Java, que incluye el


conjunto de paquetes llamado swing, le permite a los
programas Java ofrecer interfaces gráficas de usuario
y recoger los datos de entrada del usuario mediante
el ratón, el teclado y otros dispositivos de entrada.
Paquetes de las API de Java

Swing se puede utilizar para crear aplicaciones para componentes de


la interfaz gráfica del usuario como:
 Marcos: ventanas con barras de título, barra de menú, botones
para maximizar, minimizar o cerrar, etcétera
 Contenedores
 Botones
 Etiquetas
 Campos de texto y áreas de texto
 Listas desplegables
Swing ofrece:
 Componentes comunes de la interfaz de usuario
 Contenedores componentes de interfaz para crear marcos,
paneles, ventanas, menús, barras de menús, etcétera
 Para usar las clases swing se debe utilizar una instrucción
import o una sentencia general como:

import javax.swing.*
Si un programa incluye la declaración

import javax.swing.JFrame
únicamente se puede utilizar la clase JFrame.
Paquetes
El conjunto de paquetes de Java es muy grande, hay más de 200 disponibles en
Java SE API 6; cada uno está constituido por clases o interfaces; una lista genérica
de paquetes se encuentra en:

 Bibliotecas del lenguaje y de utilidades (p.e. java.lang, java.


 util)
 Biblotecas base/core (p.e. java.applet, java.io)
 Bibliotecas de integración (p.e. java.sql, javax.sql)
 Bibliotecas de interfaces de usuario AWT (API) (p.e. java.awt,
 java.awt.color)
 Bibliotecas de interfaces de usuario: Swing API (p.e. javax.swing,
 javax.swing.event)
 Biblioteca de invocación remota de métodos (RMI) y CORBA (p.e.
 java.rmi, java.rmi.CORBA)
 Biblioteca de seguridad
 Bibliotecas XML
Swing versus AWT
 swing y AWT pueden estar juntos en la misma interfaz, aunque
si faltan precauciones en el diseño pudiese haber problemas;
para evitarlos, tal vez sea mejor utilizar componentes swing,
existe uno para cada componente de AWT.

JButton, JFrame Button, Frame

si omite accidentalmente la J, su programa puede compilarse y


ejecutarse, pero la mezcla de componentes swing y AWT
pueden conducir a inconsistencias visuales y de
comportamiento.
Paquetes Importantes
Creación de un JFrame
Administrador de diseño

 La disposición de componentes no se suele determinar de modo absoluto,


es decir, no se ponen en coordenadas expresadas en pixeles para evitar
depender del dispositivo en el que se ubican los componentes gráficos; la
distribución de componentes se hace con los gestores de posicionamiento
que los distribuyen en posiciones relativas; los gestores de
posicionamiento son objetos que implementan la interfaz LayoutManager

Hay definidos hasta siete tipos de layouts y son los siguientes: FlowLayout,
BorderLayout, GridLayout, BoxLayout, GridBagLayout, CardLayout y
SpringLayout;
BorderLayout
 Divide al contenedor en cinco zonas: los cuatro puntos
cardinales y el centro; los componentes distribuidos con este
gestor se ubican en las posiciones: superior (north), inferior
(south), derecha (east), izquierda (west) y centro (center); estas
posiciones se representan por las constantes:
 BorderLayout.CENTER, BorderLayout.NORTH,
BorderLayout.EAST, BorderLayout.SOUTH y
BorderLayout.WEST.
BorderLayout(int separaHorizontal, int separaVertical);
Practica
import javax.swing.*;
import java.awt.*;
public class MarcoBorder extends Jframe {
static int ANCHO =175;
static int ALTO = 100;
public MarcoBorder() {
super("Mi marco");
add(new JLabel("Norte", SwingConstants.CENTER), BorderLayout.NORTH);
add(new JLabel("Sur", SwingConstants.CENTER), BorderLayout.SOUTH);
add(new JLabel("Centro", SwingConstants.CENTER), BorderLayout.CENTER);
add(new JLabel("Oeste", SwingConstants.CENTER), BorderLayout.WEST);
add(new JLabel("Este", SwingConstants.CENTER), BorderLayout.EAST);
setSize(ANCHO,ALTO);
setVisible(true);
}
public static void main(String args[]) {
MarcoBorder miMarco = new MarcoBorder();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
FlowLayout
 Sitúa los componentes por filas de izquierda a derecha, cuando se completa
una fila comienza otra; es el gestor por omisión de los paneles y applets.
 La clase FlowLayout dispone de varios constructores, uno de ellos establece
la alineación de los componentes: FlowLayout(int alineación); la alineación
puede tomar los valores: FlowLayout.RIGHT, FlowLayout.CENTER y
FlowLayout.LEFT.
 Este otro constructor, FlowLayout(int alin, int sepHztal, int sepVert),
establece, además de la alineación, la separación en pixeles de los
componentes.
Practica
import javax.swing.*;
import java.awt.*;
public class MarcoBorder extends Jframe {
static int ANCHO =175;
static int ALTO = 100;
public MarcoBorder() {
super("Mi marco");
setLayout(new FlowLayout());
add(new JLabel("Primera"));
add(new JLabel("Segunda"));
add(new JLabel("Tercera"));
add(new JLabel("Cuarta"));
add(new JLabel("Quinta"));
add(new JLabel("Sexta"));
setSize(ANCHO,ALTO);
setVisible(true);
}
public static void main(String args[]) {
MarcoBorder miMarco = new MarcoBorder();
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
 Realizar 2 ejercicios, uno donde se implemente GridLayout y el
segundo donde se implemente BoxLayout:
GridLayout
 GridLayout
Distribuye los componentes en una rejilla de celdas iguales en forma de
cuadrícula; los elementos se ubican de arriba abajo y de izquierda a
derecha.
Al crear el gestor se pasa el número de filas/columnas que forman la
rejilla en la que
 se colocan los componentes; los constructores son:
 GridLayout(), coloca los componentes en una única fila y única
columna.
 GridLayout(int f,int c), coloca los componentes en cuadrículas de f
filas
 por c columnas.
 GridLayout(int f, int c, int sepHztal, int sepVert), define la rejilla y
establece la separación en pixeles.
BoxLayout
 BoxLayout
sitúa los componentes en una única fila o una única columna, se
asemeja a una caja con orientación horizontal o vertical; el
constructor necesita un argumento con el contenedor que va a
utilizar y la orientación, la cual puede ser: BoxLayout.X_AXIS
o BoxLayout.Y_AXIS.
El formato del constructor es:
BoxLayout(Container destino, int orientacion)
Componentes de texto
Paquetes
Son una forma de organizar grupos de clases. Un paquete
contiene un conjunto de clases relacionadas bien por finalidad,
por ámbito o por herencia.

Los paquetes resuelven el problema del conflicto entre los


nombres de las clases. Al crecer el número de clases crece la
probabilidad de designar con el mismo nombre a dos clases
diferentes.

Las clases tienen ciertos privilegios de acceso a los miembros


dato y a las funciones miembro de otras clases dentro de un
mismo paquete.
Paquetes
 La primera sentencia que encontramos en el código fuente de
las distintas clases que forman el proyecto es package o del
nombre del paquete.
 La palabra clave package permite agrupar clases e interfaces.
Los nombres de los paquetes son palabras separadas por
puntos y se almacenan en directorios que coinciden con esos
nombres.
Paquetes/ Librerías.

En Java, las clases se agrupan en paquetes (packages) que


definen utilidades o grupos temáticos, y que se encuentran en
directorios del disco con su mismo nombre. Para incorporar y
utilizar las clases de un paquete en un programa se utiliza la
declaración import;

Ejemplos:
import java.util.Random;
import java.util.Date;
import java.util.Math;
Paquetes/ Librerías.

 El programador puede definir sus paquetes para agrupar las


clases creadas; las declaraciones import también sirven para
incorporar clases de un paquete creado por el programador; por
ejemplo: si ha definido un paquete casa, con las clases
Climatizador, Computador, nevera, microondas, se pueden hacer
las declaraciones:
import nombrePaquete.nombreClase;
import nombrePaquete.*;
import casa.Computador;
import casa.Nevera;

import casa.*;
 Escribir un programa de conversión de temperatura, que convierta de
grados Fahrenheit a centígrados. La temperatura en grados Fahrenheit
deberá introducirse desde el teclado ( mediante un objeto JTextField).
Debe usarse un objeto Jlabel para mostrar la temperatura convertida:

 Formula para conversión:


𝟓
𝑪𝒆𝒏𝒕𝒊𝒈𝒓𝒂𝒅𝒐𝒔 = x (Fahrenheit -32)
𝟗
 Modificar el programa anterior para que el usuario pueda elegir el tipo de
conversión que desea realizar.
 Fahrenheit a Centígrados.
 Centígrados a kelvin.
 Kelvin a Fahrenheit
Sugerencia: usar JRadioButton o JComboBox, para elegir el tipo de conversión , y
mostrar el resultado en un JLabel

𝟓 ∗(𝑭𝒂𝒉𝒓𝒆𝒏𝒉𝒆𝒊𝒕−𝟑𝟐)
𝑪𝒆𝒏𝒕𝒊𝒈𝒓𝒂𝒅𝒐𝒔 =
𝟗
𝟗 ∗(𝑲𝒆𝒍𝒗𝒊𝒏−𝟐𝟕𝟑.𝟏𝟓)
𝑭𝒂𝒉𝒓𝒆𝒏𝒉𝒆𝒊𝒕 = +32
𝟓
𝑲𝒆𝒍𝒗𝒊𝒏 = 𝑪𝒆𝒏𝒕𝒊𝒈𝒓𝒂𝒅𝒐𝒔+ 273.15
Paquetes
JAVA vs C#

pacakge N1.N2; namespace N1.N2 {


class A {} class A {}
class B {} class B {}
}
2.3 Creación de componentes (Visuales y no
visuales) definidos por el usuario.

Componentes
Un componente es el elemento básico de una interfaz gráfica.
Los componentes permiten al usuario interactuar con la
aplicación y proporcionar información desde el programa al
usuario sobre el estado de la aplicación.

Ejemplos de componentes son:


los botones, las barras de desplazamiento, las etiquetas, las
listas, las cajas de selección o los campos de texto, entre otros..
2.3 Creación de componentes (Visuales y no
visuales) definidos por el usuario.

 Cabe mencionar que los componentes nunca se


encuentran de forma aislada, sino agrupados dentro de
contenedores. Los contenedores contienen y organizan
la situación de los componentes; además, son en sí
mismos componentes y como tales pueden ser situados
dentro de otros contenedores.
2.3 Creación de componentes (Visuales y
no visuales) definidos por el usuario.

Componentes Visuales.
Como su nombre lo indica son aquellos que se mantendrán
visibles ante la apreciación del usuario, en el momento de la
ejecución de dicha aplicación.
Componentes Visuales
Componentes Visuales
2.3 Creación de componentes (Visuales y no
visuales) definidos por el usuario.

Componentes No visuales.
Son aquellos componentes capaces de trabajar en segundo
plano, o fuera de la vista del usuario.
Uso de componentes (visuales y no Visuales)

Componentes Visuales.
 Para realizar captura de datos.
 Mostrar resultados de Consultas.
 Mensajes de Alerta

Componentes No visuales.
 Para ejecutar instrucciones controladas por periodos de tiempos
definidos por el usuario.
 Realizar conexiones a diversos dispositivos, por medio de puertos.
 Ejecutar procesos en segundo plano
Actividad
 Resolver el siguiente ejercicio implementando el uso de
componentes Visuales y no visuales, según convenga.
 Considerar los créditos de la siguiente forma:
T1 – 5000
T2 -10,000
T3 – 15,000
Otros – 20,000
2.4 Creación de paquetes / librerías definidas
por el usuario.
Fuentes de información

 Sharp, John, Visual C# 2008, 1 Edición, Anaya Multimedia, España, 2008


 Herbert Schildt, Java Manual De Referencia 7a. Ed., 7ª Edición, Mcgraw Hill,
México, 2008
 John Dean, Introducción A La Programación Con Java, 1, Mcgraw Hill,
México, 2009
 Deitel Y Deitel, Java Cómo Programar, 7ª Edición, Prentice Hall, México, 2008
 Deitel Y Deitel, C / C++ Y Java Cómo Programar, 4ta Edición, Prentice Hall,
México, 2004
 Andrea, Edgar D, Java 2: Curso De Iniciación, 1era Edición, Inforbook's
Ediciones, España, 2006
 http://www.programacion.com/java/tutorial/ags_j2me/
 http://leo.ugr.es/J2ME/TOOLS/index.html

S-ar putea să vă placă și