You are on page 1of 44

Lenguajes Orientados a

Objetos
Clases y Objetos

Elaborado por: Dr. Rodrigo Cadena Martínez 1


Programación Orientada a Objetos

Clase • Humano
Perro

Objeto • Rodrigo
Firulais

• Habla
Ladra
Métodos • Piensa
Muerde
Applets y aplicaciones

• Applet es parte de una pagina web

• Una aplicación es independiente


Entorno de desarrollo NetBeans
• Para crear un Applet:
 File
 New Project
 Categories: Java
 Projects: Java Class Library
Dar clic derecho en el proyecto que acabamos de crear:
 New
 Applet
Primer programa con Applets

1. import java.applet.Applet;
2. import java.awt.Graphics;
3. public class NewApplet extends Applet {
4. public void paint(Graphics g) {
5. g.drawString("Hola", 50, 50);
6. }
7. }
Correr programa con Applets

• Pestaña RUN
• Run File
Ejercicio

• Diseñar un programa que escriba la palabra «Hola» en la coordenada


(100,100) y que escriba «Adiós» en la coordenadas (200,200).
Gráficos
1. import java.applet.Applet;
2. import java.awt.Graphics;
3. public class NewApplet extends Applet {
4. public void paint(Graphics g) {
5. g.drawLine(0,0, 100, 100);

}
6. }
7. }
Coordenadas de inicio de Coordenadas del final de la
la línea línea
Dimensiones de la pantalla
x
0
0

y
Métodos para dibujar
• DrawRect(x, y, ancho, alto);
X ancho
y

alto
Métodos para dibujar
• DrawOval(x, y, ancho, alto);
X ancho
y

alto
Métodos para dibujar
DrawArc(x, y, ancho, alto, ángulo de inicio, ángulo del arco);
X ancho
Arco

y
Ángulo del
arco
alto
Ángulo de
inicio
Rellenar figuras

g.setColor(Color.black);
g.fillRect(30,100,80,40);
g.setColor(Color.red);
g.fillOval(120,100,50,50);
Concatenar texto

g.drawString(“Hola, ” + “¿cómo estas?”);

El signo ‘+’ sirve para unir cadenas de texto


Ejercicio

• Diseña un tiro al blanco


Eventos
Esperar
Evento

Oprimir Arrastrar Clic con


etcétera
tecla ratón el ratón
Como funcionan el evento: barra de
desplazamiento
El método init será llamado public void init(){
primero }

Muestra elementos gráficos public void paint(Graphics g){


en el applet }

Al ocurrir un evento este public void adjustmentValueChanged (AdjustmentEvent e){


método se llama }
automáticamente
Crear una barra en pantalla
private Scrollbar barra; // se declara una variable tipo Scrollbar

public void init(){


barra = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,100);
// se crea este objeto a través de «new»

add(barra);
// se agrega en la pantalla a través de «add»

barra.addAdjustmentListener(this);
// se pone en espera a un evento a la barra, a través de «addAdjustmentListener(this)»
}
Actualización del valor de la barra de
desplazamiento
public void adjustmentValueChanged(AdjustmentEvent e){
// cada que se le de clic a la barra se invocará este método

barraValor = barra.getValue();
// consigue el valor que tenga la barra y se asigna a barraValor

repaint();
//Invoca al método paint()

}
Barra de desplazamiento

barra = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100);


1 2 34 5
1. Orientación: horizontal o vertical, va en mayúsculas.
2. El valor inicial, significa donde va a empezar el valor de la barra.
3. Cuanto se le resta del final. Este valor se le resta al valor final de la barra.
4. Valor mínimo de la barra.
5. Valor máximo de la barra.
Barra de desplazamiento
Import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Evento extends Applet implements AdjustmentListener{
private Scrollbar barra;
private int barraValor = 0;
public void init(){
barra = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,100);
add(barra);
barra.addAdjustmentListener(this);
}
public void paint(Graphics g) {
g.drawString("El valor actual es: "+barraValor,100, 100);
}

public void adjustmentValueChanged(AdjustmentEvent e){


barraValor = barra.getValue();
repaint();
}
}
Ejercicio

• Generar dos barras, una horizontal y otra vertical, con las cuales se debe
imprimir en pantalla el valor de cada barra.
Combinar evento y dibujo en pantalla
public class RellenaBarra extends Applet implements AdjustmentListener{
private Scrollbar barra;
private int barraValor;
public void init(){
barra = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,100);
add(barra);
barra.addAdjustmentListener(this);
}
public void paint(Graphics g) {
showStatus("El valor actual es: "+barraValor);
g.drawRect(40,80,60,99);
g.fillRect(40, 80, 60, barraValor);
}

public void adjustmentValueChanged(AdjustmentEvent e){


barraValor = barra.getValue();
repaint();
}
}
Ejercicio

• Diseñar un programa que con ayuda de una barra horizontal pueda rellenar
un rectángulo peor ahora de forma horizontal.
Etiquetas
public class Etiqueta extends Applet implements AdjustmentListener{

private Scrollbar barra1, barra2;

private int barra1Valor;

private int barra2Valor;

public void init(){

Label titulo1,titulo2;

titulo1 = new Label("arriba");

add(titulo1);

barra1 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,100);

add(barra1);

barra1.addAdjustmentListener(this);

titulo2 = new Label("abajo");

add(titulo2);

barra2 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,100);

add(barra2);

barra2.addAdjustmentListener(this);

public void paint(Graphics g) {

g.drawString("El valor de arriba es "+ barra1Valor, 100 , 100);

g.drawString("El valor de abajo es "+ barra2Valor, 100 , 150);

public void adjustmentValueChanged(AdjustmentEvent e){

barra1Valor = barra1.getValue();

barra2Valor = barra2.getValue();

repaint();

}
Ejercicio

• Diseña un programa que le introduzcas un valor a través de una barra de


desplazamiento y si es mayor a 50 dibujar un circulo, en caso contrario
dibujar un cuadrado.
Botones
public class Boton extends Applet implements ActionListener{
private Button evaluador;
private int cuenta;

public void init(){


evaluador = new Button("Oprima aquí");
add(evaluador);
evaluador.addActionListener(this);
}

public void paint (Graphics g){


g.drawString("El número de veces que se ha presionado el botón es: "+ cuenta, 10, 50);

}
public void actionPerformed(ActionEvent e){
cuenta++;
repaint();
}
}
public class BotonOuch extends Applet implements ActionListener{
private Button evaluador;
private boolean oprimidoYa = false;

public void init(){


evaluador = new Button("Oprima aquí");
add(evaluador);
evaluador.addActionListener(this);
}

public void paint (Graphics g){


if(oprimidoYa)
g.drawString("OUCH!!! ", 100, 50);

}
public void actionPerformed(ActionEvent e){
oprimidoYa = true;
repaint();
}
}
Random

• Random crea números desde 0.0 hasta .9999999…


• Si multiplicamos por algún número como 6, quedaría de 0.0 hasta 5.99999
• Si hacemos un cast a entero (int) nos queda de del 0 al 5
• Y posteriormente le sumamos un 1, para que nos de un número aleatorio
ente 1 y 6.
dado = (int)(Math.random() * 6) + 1;
Dado random
if(dado1 == dado2)
public class TirarDados extends Applet implements
ActionListener{ g.drawString("Has Ganado", 20, 70);

private Button tirarDados; else

private boolean tirar = false; g.drawString("lo siento, sigue intentando", 20, 70);
}

public void init(){ }

tirarDados = new Button("Tirar dados"); public void actionPerformed(ActionEvent e){

add(tirarDados); tirar = true;

tirarDados.addActionListener(this); repaint();

} }

public void paint (Graphics g){ }

int dado1, dado2;


if(tirar){
dado1 = (int)(Math.random() * 6) + 1;
dado2 = (int)(Math.random() * 6) + 1;
g.drawString("Los dados son: "+dado1+" y "+dado2, 20, 50);
Mas de un botón
public class MasDeUnBoton extends Applet implements
ActionListener{
private int diametro = 20;
private Button chico, grande; public void actionPerformed(ActionEvent event){
if(event.getSource() == chico)

public void init(){ diametro = diametro - 5;

chico = new Button("chico"); if(event.getSource() == grande)

add(chico); diametro = diametro + 5;

chico.addActionListener(this); repaint();

grande = new Button("grande"); }

add(grande); }

grande.addActionListener(this);
}

public void paint (Graphics g){


g.drawOval(50, 50, diametro,diametro);
}
Ejercicio

• Modifica el programa anterior para que además de los botones, grande y


chico, tenga los botones: izquierda, derecha, arriba y abajo, diagonal
derecha-abajo, diagonal derecha-arriba, diagonal izquierda-abajo, diagonal
izquierda-arriba, contorno, rellenar, azul, rojo, verde, amarillo, rosa.
Campos de texto
Declaración:
private TextField edadCampo;
Anchura de
caracteres del
campo de texto,
Inicialización: en esta caso 10
edadCampo = new TextField (10);

Agregar:
add(edadCampo);

Manejo de Evento:
edadCampo.addActionListener(this);
public class VerificarEdad extends Applet implements ActionListener{
private TextField edadCampo;
int edad;

public void init(){


edadCampo = new TextField(10);
add(edadCampo);
edadCampo.addActionListener(this);
}
public void paint (Graphics g){
g.drawString("La edad es " + edad, 50, 50);
if(edad>=18)
g.drawString("Puede votar",50,100);
else
g.drawString("No puede votar",50,100);
}

public void actionPerformed(ActionEvent event){


edad = Integer.parseInt(edadCampo.getText());
repaint();
}
}
Más de un campo de texto
public class EdadAño extends Applet implements ActionListener{
private TextField edadCampo, añoCampo;
int edad, año;

public void init(){


edadCampo = new TextField(10);
add(edadCampo);
edadCampo.addActionListener(this);
añoCampo = new TextField(10);
add(añoCampo);
añoCampo.addActionListener(this);
}
Más de un campo de texto
public void paint (Graphics g){
g.drawString("La edad es " + edad, 50, 50);
g.drawString("El año en que naciste " + año, 50, 100);
}

public void actionPerformed(ActionEvent event){


if(event.getSource() == edadCampo)
edad = Integer.parseInt(edadCampo.getText());
if(event.getSource() == añoCampo)
año = Integer.parseInt(añoCampo.getText());
repaint();
}
}
Ejercicio

• Modifica el programa anterior, agrega un campo más llamado Año actual.


Agrégale etiquetas a los 3 campos. Y valida que la edad sea la resta entre el
año actual menos el año que introdujo el usuario, si este es el caso imprimir
la edad, si no imprimir edad inválida.
Botones y campos de texto juntos
public class BotonyTexto extends Applet implements ActionListener{
private TextField numeroCampo;
private Button numeroBoton;
int edad, año;

public void init(){


numeroCampo = new TextField(10);
add(numeroCampo);
numeroCampo.addActionListener(this);
numeroBoton = new Button("Año");
add(numeroBoton);
numeroBoton.addActionListener(this);
}
Botones y campos de texto juntos
public void paint (Graphics g){
g.drawString("La edad es " + edad, 50, 50);
g.drawString("El año actual es " + año, 50, 100);
}

public void actionPerformed(ActionEvent event){


if(event.getSource() == numeroCampo)
edad = Integer.parseInt(numeroCampo.getText());
if(event.getSource() == numeroBoton)
año = 2018;
repaint();
}
}
Botón borrar en campo de texto
public class BotonBorrar extends Applet implements ActionListener{
private TextField numeroCampo;
private Button numeroBoton;
int edad, año;

public void init(){


numeroCampo = new TextField(10);
add(numeroCampo);
numeroCampo.addActionListener(this);
numeroBoton = new Button("Borrar");
add(numeroBoton);
numeroBoton.addActionListener(this);
}
Botón borrar en campo de texto
public void paint (Graphics g){
g.drawString("La edad es " + edad, 50, 50);
}

public void actionPerformed(ActionEvent event){


if(event.getSource() == numeroCampo)
edad = Integer.parseInt(numeroCampo.getText());
if(event.getSource() == numeroBoton){
numeroCampo.setText("");
edad=0;
}
repaint();
}
}
public class InsertarBorrar extends Applet implements ActionListener{
private TextField numeroCampo;
private Button borrarBoton, insertarBoton;
int edad=0;

public void init(){


numeroCampo = new TextField(10);
add(numeroCampo);
numeroCampo.addActionListener(this);
borrarBoton = new Button("Borrar");
add(borrarBoton);
borrarBoton.addActionListener(this);
insertarBoton = new Button("Insertar");
add(insertarBoton);
insertarBoton.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == numeroCampo)
edad = Integer.parseInt(numeroCampo.getText());
if(event.getSource() == borrarBoton){
numeroCampo.setText("");
edad=0;
}
if(event.getSource() == insertarBoton)
edad = Integer.parseInt(numeroCampo.getText());
repaint();
}
}

You might also like