Documente Academic
Documente Profesional
Documente Cultură
I. Applets
Un applet es un programa en Java que corre en un navegador de Internet, que sea compatible con Java. Reside en el
mismo servidor que el documento HTML y al igual que este viaja a través de la red y corre como parte del documento.
• init() Esta función miembro es llamada al crearse el applet. Es llamada sólo una vez. La clase Applet no hace nada
en init(). Las clases derivadas deben sobrecargar este método para cambiar el tamaño durante su inicialización, y
cualquier otra inicialización de los datos que solamente deba realizarse una vez. Deberían realizarse al menos las
siguientes acciones:
1. Carga de imágenes y sonido
2. El resize del applet para que tenga su tamaño correcto
3. Asignación de valores a las variables globales
• destroy() Esta función destruye los recursos usados por el applet. La clase Applet no hace nada en este método.
Las clases derivadas deberían sobrecargarlo para hacer una limpieza final. Los applet multithread deberán usar
destroy() para "matar" cualquier thread del applet que quedase activo.
• start() Este método contiene el cuerpo o lo que hace el applet, es llamado luego de invocar a init()y vada vez que
vuelve a visitarse la pagina web. La clase Applet no hace nada en este método. Las clases derivadas deberían
sobrecargarlo para comenzar una animación, sonido, etc. También se puede utilizar start() para eliminar cualquier
thread que se necesite.
• stop() Llamada para detener el applet. Se llama cuando el applet desaparece de la pantalla. La clase Applet no hace
nada en este método. Las clases derivadas deberían sobrecargarlo para detener la animación, el sonido, etc.
• paint( Graphics g ) Se llama cada vez que se necesita refrescar el área de dibujo del applet. La clase Applet
simplemente dibuja una caja con sombreado de tres dimensiones en el área. Para repintar toda la pantalla cuando
llega un evento Paint, se pide el rectángulo sobre el que se va a aplicar paint() y si es más pequeño que el tamaño
real del applet se invoca a repaint(), que como va a hacer un update(), se actualizará toda la pantalla.
Los siguientes métodos son también útiles para los programadores de applet:
• update( Graphics g ) Esta es la función que se llama realmente cuando se necesita actualizar la pantalla. La clase
Applet simplemente limpia el área y llama al método paint(). Esta funcionalidad es suficiente en la mayoría de los
casos. De cualquier forma, las clases derivadas pueden sustituir esta funcionalidad para sus propósitos.
• repaint() A esta función se la debería llamar cuando el applet necesite ser repintado. No debería sobrecargarse,
sino dejar que Java repinte completamente el contenido del applet.
Al llamar a repaint() , sin parámetros, internamente se llama a update() que borrará el rectángulo sobre el que se
redibujará y luego se llama a paint(). Como a repaint() se le pueden pasar parámetros, se puede modificar el
rectángulo a repintar.
• resize( int width, int height ) El método init() debería llamar a esta función miembro para establecer el tamaño
del applet. Puede utilizar las variables ancho y alto, pero no es necesario. Cambiar el tamaño en otro sitio que no
sea init() produce un reformateo de todo el documento y no se recomienda.
setBackground(col);
g.setFont(f);
g.setColor(Color.yellow);
g.drawString("Welcome to Java!!", 50, 100 );
}
}
La clase Font
Para definir un nuevo objeto Font debemos indicarle tres valores:
• El tipo de fuente, esta es una constante string que indica el tipo utilizado.
• El estilo de la letra, este es un valor entero que puede ser:
0 : Plain
1 : Bold
2 : italic
• El tamaño de la letra en pixels, este es un valor entero.
Para definir y crear un objeto Font debes escribir instrucciones como las siguientes:
Font f;
f = new Font("Helvetica",1,26);
Nota: es necesario que el nombre del tipo de font este entre comillas.
La clase Color
Para definir un nuevo objeto Color, debemos indicarle tres valores enteros entre 0 y 255:
• El primero indica la cantidad de componente Rojo.
• El segundo indica la cantidad de componente Verde.
• El tercero indica la cantidad de componente Azul.
La mezcla de estos tres componentes forman el color resultante, a esta técnica se le conoce como color RGB (por Red,
Green y Blue).
Para definir y crear un objeto Color debes escribir instrucciones como las siguientes:
Color c;
c = new Color(255,126,40);
La clase Graphics
La clase Graphics es una clase ya definida en el lenguaje Java que se encarga de realizar las operaciones de dibujo
sobre las ventanas de la aplicación. Hay otras dos clases que colaboran con Graphics para definir los atributos de
dibujo, estas son:
• La clase Font, que define las características del tipo de letra.
• La clase Color, que define el color con el que se va a dibujar.
Para definir y crear un objeto Graphics debes escribir instrucciones como las siguientes:
Graphics g;
g = new Graphics( );
Los métodos de la clase Graphics son:
setFont( f ) Donde f es una variable objeto de la clase Font. Cambia el atributo de tipo de letra del
objeto gráfico.
setColor( c ) Donde c es una variable objeto de la clase Color. Cambia el atributo color del objeto
gráfico, de tal manera que en las operaciones de dibujo siguientes utilice el color c.
drawString( letrero, x, y ) Donde letrero es una constante string ("debe escribirse entre comillas") y x,y es la
posición donde se dibujará el letrero.
drawLine(x1,y1,x2,y2) Donde x1, y1, x2, y2 son valores enteros. Dibuja una línea del punto (x1,y1) al punto
(x2,y2).
drawRect(x,y,an,al) Dibuja el borde de un rectángulo que inicia en el punto (x,y) y tiene un ancho an y una
altura al.
fillRect(x,y,an,al) Dibuja un rectángulorelleno que inicia en el punto (x,y) y tiene un ancho an y una altura al.
Lenguaje de PorgramacionII
drawOval(x,y,an,al) Dibuja el borde de un óvalo definido por el rectángulo descrito por el punto (x,y) y un
ancho an y una altura al. Si se quiere dibujar un círculo, los valores an (ancho) y al (alto)
deberán ser iguales.
fillOval(x,y,an,al) Dibuja un óvalo relleno definido por el rectángulo descrito por el punto (x,y) y un ancho an
y una altura al. Si se quiere dibujar un círculo, los valores an (ancho) y al (alto) deberán
ser iguales.
drawRoundRect(x,y,an,al,a1,a2) Dibuja el borde de un rectángulo con las esquinas redondeadas, el cual inicia en el punto
(x,y) y tiene un ancho an y una altura al. La redondez de la figura está determinada por el
ancho del arco a1y por la altura del arco a2.
fillRoundRect(x,y,an,al,a1,a2) Dibuja un rectángulo relleno con las esquinas redondeadas, el cual inicia en el punto (x,y) y
tiene un ancho any una altura al. La redondez de la figura está determinada por el ancho
del arco a1y por la altura del arco a2.
draw3DRect(x,y,an,al,b) Dibuja un rectángulo tridimensional que inicia en el punto (x,y) y tiene un ancho an y una
altura al. El rectángulo esta elevado cuando b (boolean) es true y hundido cuando b es
false.
fill3DRect(x,y,an,al,b) Dibuja un rectángulo tridimensional relleno que inicia en el punto (x,y) y tiene un ancho an
y una altura al. El rectángulo esta elevado cuando b (boolean) es truey hundido cuando b
es false.
drawArc(x,y,an,al,angi,angf) Dibuja un arco que inicia en el punto (x,y) y tiene un ancho an y una altura al. El segmento
del arco se dibuja desde el ángulo inicial (angi) hasta el ángulo final del arco (angf).
fillArc(x,y,an,al,angi,angf) Dibuja un arco con relleno que inicia en el punto (x,y) y tiene un ancho an y una altura al.
El segmento del arco se dibuja desde el ángulo inicial (angi) hasta el ángulo final del arco
(angf).
drawPolygon(x1[ ],y1[ ],p) Dibuja un polígono de p puntos. La coordenada x de cada punto se especifica en el arreglo
x1[] y la coordenada y se especifica en el arreglo y1[].
fillPolygon(x1[ ],y1[ ],p) Dibuja un polígono relleno de p puntos. La coordenada x de cada punto se especifica en el
arreglo x1[] y la coordenada y se especifica en el arreglo y1[].
NOTA: Donde x, y, an, al, a1, a2, angi, angf, x1[], y1[], p son valores enteros.
Otros Métodos
• FlowLayout: Deposita componentes en forma parecida a como se organiza las palabras en una página, de izquierda a
derecha hasta que ya no haya espacio, y continúa en el reglón siguiente. Si se desea variar la alineación de los
componentes se utiliza, FlowLayout.LEFT, FlowLayout.RIGHT, FlowLayout.CENTER.
import java.awt.*;
import java.applet.Applet;
public class AwtFlow extends Applet {
Button boton1,boton2,boton3;
public void init() {
boton1 = new Button( "Aceptar" );
boton2 = new Button( "Abrir" );
boton3 = new Button( "Cerrar" );
add( boton1 );
add( boton2 );
add( boton3 );
Lenguaje de PorgramacionII
}
}
Componentes y Contenedores
Una interface gráfica está construida en base a elementos gráficos básicos, que son los Componentes. Típicos ejemplos
de estos Componentes son los botones, barras de desplazamiento, etiquetas, listas, cajas de selección o campos de
texto. Los Componentes permiten al usuario interactuar con la aplicación y proporcionar información desde el programa
al usuario sobre el estado del programa. En el AWT, todos los Componentes de la interface de usuario son instancias de
la clase Component o uno de sus subtipos.
Los Componentes no se encuentran aislados, sino agrupados dentro de Contenedores. Los Contenedores contienen y
organizan la situación de los Componentes; además, los Contenedores son en sí mismos Componentes y como tales
pueden ser situados dentro de otros Contenedores. En el AWT, todos los Contenedores son instancias de la clase
Container o uno de sus subtipos.
• Frame, provee la funcionalidad de una ventana en el sistema operativo nativo, con la excepcion que no es posible
acceder al hadle o PID.
• Dialog, representa una ventana mostrada por corto tiempo o que requiere información de transición.
• FileDialog, es una clase especial de Dialog para requerir del usuario un nombre de archivoo ruta de acceso.
• MenuComponent, clase abstracta de donde derivan todas las clases para asociar menus a otros componentes.
• MenuBar: encapsula el concepto de menú asociado a un Frame.
• MenuItem: es uan clase para crear los objetos que serán los items de cada menú.
Clase Button
Button() Constructor
Button(String texto) Constructor
setLabel(String texto) Coloca un texto como etiqueta del botón
getLabel(String texto) Obtiene texto de la etiqueta del botón como cadena
setVisible(boolean e) e = true visible, false invisible
setEnabled(boolean e) e = true habilitado, false deshabilitado
Clase Checkbox
Checkbox() Constructor
Checkbox(String cadena) Constructor
Checkbox(String cadena, CheckboxGroup radio, boolean estado) Constructor
setCheckboxGroup(CheckboxGroup grupo) Establece el grupo al que pertenece
getState() Obtiene estado de la casilla como true o false
setLabel(String texto) Coloca texto a la casilla
setState(boolean e) e = true elegido, false no elegido
Clase CheckboxGroup
CheckboxGroup() Constructor
getCurrent() Obtiene el check actual activo
setCurrent(Checkbox opcion) Establece al check opción la activa
Clase Choice
Choice() Constructor
addItem(String texto) Agrega un texto como opción al objeto
getItem(int posicion) Obtiene el ítem de la posición indicada
getSelectedItem() Obtiene el ítem seleccionado como texto
getSelectedIndex() Obtiene el índice del ítem seleccionado
select(int posicion) Selecciona el ítem de la posición
select(String texto) Selecciona el ítem del texto indicado
remove(int posicion) Elimina el ítem correspondiente a la posición indicada
removeAll() Elimina todos los ítems, quedando vacío el objeto
getItemCount() Obtiene el número de ítems
countItems()
Clase Label
Label() Constructor
Label(string texto) Constructor
moveTo(int x, int y) Mueve el letrero a la posición x, y.
Lenguaje de PorgramacionII
Clase List
List() Constructor
List(int filas, boolean multiple) Constructor
addItem(String texto) Adiciona un ítem en la posición indicada
getSelectedItem() Obtiene el ítem seleccionado como cadena
getItem(int pos) Obtiene el ítem de la posición indicada
getSelectedIndex() Obtiene el índice del ítem seleccionado como entero
getItem(int posicion) Obtiene el ítem correspondiente a la posición indicada
select(int posicion) Selecciona al ítem de la posición indicada
remove(int posicion) Elimina el ítem correspondiente a la posición indicada
removeAll() Elimina todos los ítems, quedando vacío el objeto
getItemCount() Obtiene el número de ítems vigentes
countItem()
Clase ScrollBar
Scrollbar() Constructor
Scrollbar(int orientación) Constructor
Scrollbar(int orientación, int vinicial, areavisible, int vminimo, int vmaximo) Constructor
getValue() Obtiene el valor actual de la barra de desplazamiento
setValue(int valor) Coloca el valor actual de la barra de desplazamiento
getUnitIncrement() Obtiene unidad de variación de la barra
setUnitIncrement(int valor) Coloca valor de la unidad de variación
getBlockIncrement() Obtiene bloque de variación de la barra
setBlockIncrement(int valor) Coloca valor del bloque de variación
Clase TextField
TextField() Constructor
TextField(String texto) Constructor
TextField(string texto, int tamaño) Constructor
getText() Obtiene el texto del objeto como cadena
setFont(Font f) Determina un estilo de fuente(negrita, cursiva)
setText(String texto) Coloca un texto en el objeto
setVisible(boolean e) e = true visible, false invisible
setEnabled(boolean e) e = true habilitado, false deshabilitado
setEditable(boolean e) e = true puede ser editado, false no
setBackground(Color c) Establece el color para el fondo del objeto
setForeground(Color c) Establece el color para el texto del objeto
setEchoChar(char ch) Establece un carácter como mascara de escritura. Ejem. ‘*’ para un password
Clase TextArea
Lenguaje de PorgramacionII
Clase Panel
Panel() Constructor
setBackground(Color c) Establece color de fondo del objeto
add(Object ob) Agrega objetos al panel
Ejem1: Applet que permite sumar 2 números enteros ingresados por medio de campos de texto.
package varios;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Ejem1 extends java.applet.Applet implements ActionListener{
Button btnSumar, btnBorrar;
Label lbln1, lbln2, lblRespuesta;
TextField txtn1, txtn2, txtRespuesta;
public void init() {
setLayout(null);
txtn1=new TextField();
txtn1.setBounds (300,130,130,30);
txtn1.requestFocus();
add(txtn1);
txtn2=new TextField();
txtn2.setBounds (300,180,130,30);
txtn2.requestFocus();
add(txtn2);
txtRespuesta=new TextField();
txtRespuesta.setBounds (300,230,130,30);
txtRespuesta.requestFocus();
txtRespuesta.setEnabled(false);
add(txtRespuesta);
btnSumar=new Button("Sumar");
btnSumar.setBounds(450,130,70,23);
btnSumar.addActionListener(this);
add(btnSumar);
btnBorrar=new Button("Borrar");
btnBorrar.setBounds(450,180,70,23);
btnBorrar.addActionListener(this);
add(btnBorrar);
}
public void paint(Graphics g) {
}
public void actionPerformed(ActionEvent e ){
if (e.getSource()==btnSumar)
suma();
if (e.getSource()==btnBorrar)
borrar();
}
public void suma(){
int n1, n2, s;
n1=Integer.parseInt(txtn1.getText());
n2=Integer.parseInt(txtn2.getText());
s=n1+n2;
txtRespuesta.setText(""+s);
}
public void borrar(){
txtn1.setText("");
txtn2.setText("");
txtRespuesta.setText("");
txtn1.requestFocus();
}
}
Lenguaje de PorgramacionII
texto=new TextField();
texto.setBounds(150,40,200,23);
add(texto);
chkBold=new Checkbox("Negrita");
chkBold.setBounds(50,85,80,23);
add(chkBold);
chkItalic=new Checkbox("Cursiva");
chkItalic.setBounds(50,115,80,23);
add(chkItalic);
bgrColor=new CheckboxGroup();
btnAceptar=new Button("Aceptar");
btnAceptar.setBounds(250,80,70,23);
btnAceptar.addActionListener(this);
add(btnAceptar);
btnBorrar=new Button("Borrar");
btnBorrar.setBounds(250,120,70,23);
btnBorrar.addActionListener(this);
add(btnBorrar);
Lenguaje de PorgramacionII
}
public void actionPerformed(ActionEvent e ){
if (e.getSource()==btnAceptar){
estilo();
color();
}
if(e.getSource()==btnBorrar){
borrar();
}
}
public void estilo(){
Font f;
int b, i;
if(chkBold.getState()==true)
b=Font.BOLD;
else
b=Font.PLAIN;
if(chkItalic.getState()==true)
i=Font.ITALIC;
else
i=Font.PLAIN;
texto.setForeground(col);
}
public void borrar(){
texto.setText("");
chkBold.setState(false);
chkItalic.setState(false);
chkColor1.setState(true);
chkColor2.setState(false);
chkColor3.setState(false);
texto.setFont(new Font("Tahoma", 0, 12));
texto.setForeground(Color.black);
texto.requestFocus();
}
}
Lenguaje de PorgramacionII
EJERCICIOS
1. Construir un programa que calcule el importe total a pagar por un servicio de Fax se sabe que por cada envió de
página a nivel local el costo es S/.1.50, a nivel nacional S/.3.50, y a nivel internacional S/.7.00.
EMPLEAR: Label: Nº de fax, Cant. De páginas, Destino, Importe.
TextField: fax, paginas, importe
CheckboxGroup: Local, Nacional, Internacional.
Button: Aceptar, Borrar.
2. Calcular el promedio final y su condición de un alumno. El sistema de evalución consiste en tomar 3 practicas
calificadas y dos exámenes. El promedio se calcula eliminando la practica con menor calificación, así mismo la
condición del alumno será la siguiente:
Promedio Condición
17 – 20 Excelente
14 – 16 Bueno
11 – 13 Regular
0 – 10 Malo
EMPLEAR: Label: Nombre del alumno, Practica1, Practica2, Practica4, E. Parcial, E. Final, Promedio, Condición.
TextField: p1, p2, p3, ep, ef, prom, cond.
Button: Promediar, Nuevo.
3. En un supermercado se realiza una promoción, mediante la cual el cliente obtiene un descuento dependiendo de un
número que se escoge al azar (entre 1 y 100). Si el número escogido es menor que 54 el descuento es del 15%
sobre el total de la compra, si es mayor o igual a 54 el descuento es del 20%. Diseñe un programa que determine
cuanto dinero se le debe descontar a un cliente.
EMPLEAR: Label: Ingresar compra, Número generado.
TextField: compra, número generado, cálculos
Button: Generar número, Aceptar, Borrar.
4. Construir un programa que calcule el importe total a pagar por un servicio de Reparto de correspondencias, la zona
de reparo esta dividido en 3 áreas: Norte, Sur y Centro, de esta manera las tarifas varían en S/.0.55, S/.0.67 y
S/.0.89 por cada gramo que pesa el sobre.
EMPLEAR: Label: Zona de reparto, Importe por grama, Peso.
TextField: importe, peso
Choice: Zonas (norte, sur, centro)
Button: Aceptar, Nuevo.