Está en la página 1de 12

Lenguaje de PorgramacionII

INTERFACES GRÁFICAS DE USUARIO – GUI

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.

Metodos de los applets


Los métodos son los que se usan para arrancar (start) y detener (stop) la ejecución del applet, para pintar (paint) y
actualizar (update) la pantalla y para capturar la información que se pasa al applet desde el fichero HTML a través de
la marca APPLET.

• 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.

Ejemplo: Podemos utilizar paint() para imprimir nuestro mensaje de bienvenida:


import java.awt.*;
import java.applet.*;
public class Grafica extends Applet {
public void paint(Graphics g) {
Font f = new Font("Tahoma",1,40);
Color col = new Color(200, 0, 0);
Lenguaje de PorgramacionII

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

showStatus(texto), exhibe el texto en la barra de estado.


setBackground(col), donde col es un objeto de la clase Color, permite establecer un color al applet

II. Layouts (manejadores de composición)


Los layout managers o manejadores de composición, ayudan a adaptar los diversos Componentes que se desean
incorporar a un Panel, es decir, especifican la apariencia que tendrán los Componentes sobre un Contenedor. Tenemos:

• 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

}
}

• BorderLayout: Divide el contenedor en 5 secciones, norte, sur, este oeste y centro.


import java.awt.*;
import java.applet.Applet;
public class AwtBord extends Applet {
Button botonN,botonS,botonE,botonO,botonC;
public void init() {
setLayout( new BorderLayout() );
botonN = new Button( "Norte" );
botonS = new Button( "Sur" );
botonE = new Button( "Este" );
botonO = new Button( "Oeste" );
botonC = new Button( "Centro" );
add( "North",botonN );
add( "South",botonS );
add( "East",botonE );
add( "West",botonO );
add( "Center",botonC );
}
}

• GridLayout: Acomoda los componentes dentro de una cuadrícula de reglones y columnas.


import java.awt.*;
import java.applet.Applet;
public class AwtGrid extends Applet {
Button boton1,boton2,boton3,boton4,boton5,boton6;
public void init() {
setLayout( new GridLayout( 3,2 ) );
boton1 = new Button( "1" );
boton2 = new Button( "2" );
boton3 = new Button( "3" );
boton4 = new Button( "4" );
boton5 = new Button( "5" );
boton6 = new Button( "6" );
add( boton1 );
add( boton2 );
add( boton3 );
add( boton4 );
add( boton5 );
add( boton6 );
}
}

III. Listeners (oyentes)


Es una interfaz que permite “sentir” los eventos que se realizan en un applets o aplicación. Para facilitar estas
necesarias implementaciones el paquete java.awt.events provee un conjunto de clases que “implementan” todos
los métodos de las interfaces Listeneres para eventos de bajo nivel, de manera que solo sea necesario crear
subclases que sobrescriban solo los métodos deseados.

Evento Listener Método


ActionEvent ActionListener ActionPerformed()
Lenguaje de PorgramacionII

AdjustementEvent AdjustementListener AdjustementValueChanged()


ComponentEvent ComponentListener ComponentHidden(), componentMoved(), componentResized(),
ComponentShown()
ContainerEvent ContainerListener ComponentAdded(), componentRemoved()
FocusEvent FocusListener FocusGained(), focusLost()
ItemEvent ItemListener ItemStateChanged()
KeyEvent KeyListener KeyPressed(), keyReleased(), keyTyped()
MouseEvent MouseListener MouseClicked(), mouseEntered(), mouseExited(),
mousePressed(), mouseReleased()
MouseMotionListener MouseDragged(), mouseMoved()
TextEvent TextListener TextValueChanged()
WindowEvent WindowListener WindowClosing(), windowIconified(), windowDeiconified(),
windowOpened(), windowActivated(), windowDeactivated(),
windowClosed(),

IV. AWT – Abstract Windowing Toolkit


El AWT se trata de una biblioteca de clases Java (java.awt) para el desarrollo de Interfaces de Usuario Gráficas
(GUI). El entorno que ofrece es demasiado simple, no se han tenido en cuenta las ideas de entornos gráficos novedosos,
sino que se ha ahondado en estructuras orientadas a eventos.
La estructura básica del AWT se basa en Componentes y Contenedores. Estos últimos contienen Componentes y son
Componentes a su vez. El AWT es independiente de la plataforma en que se ejecute, pero tiene la desventaja de que
una interface gráfica diseñada para una plataforma, puede no visualizarse correctamente en otra diferente.

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.

Clases del paquete java.awt


• Component
• Button (botón), acepta un clic para ejecutar una acción.
• CheckBox (Caja de selección inclusiva), representa el estado de una variable logica (boolean).
• Choice (Campo de lista), usada para seleccionar una de muchas opciones especificadas con cadenas de texto.
• Label (Etiqueta), visualiza un texto.
• List (Lista), usada para seleccionar una o mas opciones especificadas con cadenas de texto.
• ScrollBar (barrido de total), usada para representar un valor numérico acotado, que a su vez representa parte de
un componente que es visible en un contenedor.
• TextComponent (Componentes de texto), clase que contiene componentes de texto.
• TextField (Campo de Texto), edita un texto en una sola línea.
• TextArea (Area de texto), soporta múltiples líneas.
• Container (Contenedores), es un componente que puede contener a otros componentes.
• Panel, usado para agrupar componentes en areas especificas de la pantalla.
• ScrollPane, una forma de panel que permite elementos hijos de mayores dimensiones que el propio ScrollPane, en
este caso requiere de scrollbars horizontales y/o verticales.
• Applet, tiene propiedades adicionales a la clase Panel e implementaciones en browsers.
• Window, representa una ventana sin barra de título ni borde.
Lenguaje de PorgramacionII

• 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

sizeTo(int ancho, int alto) Cambia el tamaño del letrero.


getText() Obtiene texto de la etiqueta como cadena
setText() Coloca texto en la etiqueta
setAlignment(int x) x = 0 izquierda, 1 centro, 2 derecha
setBackground(Color c) Establece el color para el fondo de la etiqueta
setForeground(Color c) Establece el color para el texto de la etiqueta
setVisible(boolean e) e = true visible, false invisible

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

TextArea(int filas, int columnas) Constructor


TextArea(String texto, int filas, int columnas) Constructor
setText(String texto) Coloca un texto en el objeto borando lo que habia
append(String texto) Agrega un texto al costado de lo que ya exista
setVisible(boolean e) e = true visible, false invisible
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

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);

lbln1=new Label ("Ingresar 1er numero");


lbln1.setBounds (60,130,200,40);
lbln1.setFont(new Font ("Arial", Font.BOLD+Font.ITALIC,20));
add(lbln1);

txtn1=new TextField();
txtn1.setBounds (300,130,130,30);
txtn1.requestFocus();
add(txtn1);

lbln2=new Label ("Ingresar 2do numero");


lbln2.setBounds (60,180,200,40);
lbln2.setFont(new Font ("Arial", Font.BOLD+Font.ITALIC,20));
add(lbln2);

txtn2=new TextField();
txtn2.setBounds (300,180,130,30);
txtn2.requestFocus();
add(txtn2);

lblRespuesta=new Label ("Resultado");


lblRespuesta.setBounds (60,230,200,40);
lblRespuesta.setFont(new Font ("Arial", Font.BOLD+Font.ITALIC,20));
add(lblRespuesta);
Lenguaje de PorgramacionII

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

Ejem2: Aplica un estilo y color a un texto ingresado, usando Checkbox y CheckboxGroup.


import java.awt.*;
import java.applet.*;
import java.awt.event.*;
public class Ejem2 extends java.applet.Applet implements ActionListener{
TextField texto;
Label lbltexto;
CheckboxGroup bgrColor;
Checkbox chkBold, chkItalic, chkColor1, chkColor2, chkColor3;
Button btnAceptar, btnBorrar;
public void init() {
setLayout(null);

lbltexto=new Label("Ingrese Texto:");


lbltexto.setBounds(50,40,90,23);
add(lbltexto);

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();

chkColor1= new Checkbox("Rojo", true, bgrColor);


chkColor1.setBounds(150,85,90,23);
add(chkColor1);

chkColor2=new Checkbox("Verde", false, bgrColor);


chkColor2.setBounds(150,115,90,23);
add(chkColor2);

chkColor3=new Checkbox("Azul", false, bgrColor);


chkColor3.setBounds(150,145,90,23);
add(chkColor3);

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;

f=new Font("Tahoma", b+i, 12);


texto.setFont(f);
}
public void color(){
Color col;
if(chkColor1.getState()==true)
col=new Color(200,0,0);
else if(chkColor2.getState()==true)
col=new Color(0,255,0);
else
col=new Color(0,0,255);

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.