Inicio / Wikis / Cursos gratis / Introducción al lenguaje JAVA - Ejemplo de programas

Introducción al lenguaje JAVA - Ejemplo de programas

(13 opiniones)
Curso gratis creado por Unav. Extraido de: http://www.unav.es/cti
21 de Septiembre de 2005
JavaOrientación a objetos

13 - Ejemplo de programas

Ilustración de las fases de vida de un applet

|| CicloVidaApplet.java
import java.awt.Graphics;
import java.applet.Applet;
public class CicloVidaApplet extends Applet
{
int contadorInit = 0;
int contadorStart = 0;
int contadorPaint = 0;
int contadorStop = 0;
int contadorDestroy = 0;
public void init() {contadorInit++;}
public void start() {contadorStart++;}
public void paint(Graphics g)
{
contadorPaint++;
g.drawString("Contador Init: " + contadorInit, 25,25);
g.drawString("Contador Start: " + contadorStart, 25,50);
g.drawString("Contador Paint: " + contadorPaint, 25,75);
g.drawString("Contador Stop: " + contadorStop, 25,100);
g.drawString("Contador Destroy: " + contadorDestroy, 25,125);
}
public void stop() {contadorStop++;}
public void destroy() {contadorDestroy++;}
}   ||
Clases para hacer gráficos sencillos. Colores.

||
CajasDeColores.java
Dibuja una serie de rectángulos y los rellena con colores de componentes RGB aleatorias
import java.awt.Graphics;
import java.awt.Color;
public class CajasDeColores extends java.applet.Applet
{
public void paint(Graphics g)
{
int rojo,verde,azul;
for (int j = 30; j < (size().height - 25); j += 30)
{
for (int i = 5; i < (size().width - 25); i += 30)
{
rojo = (int) Math.floor(Math.random() * 256);
verde = (int) Math.floor(Math.random() * 256);
azul = (int) Math.floor(Math.random() * 256);
g.setColor(new Color(rojo,verde,azul));
g.fillRect(i,j,25,25);
g.setColor(Color.black);
g.drawRect(i-1, j-1, 25, 25);
}
}
} } ||


Carga un sonido y lo interpreta


||
SonidoApplet.java
import java.applet.AudioClip;
public class SonidoApplet extends java.applet.Applet
{
AudioClip sonido;
public void init()
{
El fichero de sonido se llama 'yahoo.au' y esta en el directorio del fichero html
sonido = getAudioClip(getCodeBase(), "yahoo1.au");
}
public void start() {
sonido.loop();
}
public void stop()
{
sonido.stop();
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 
Cómo tratar los eventos

||
EjemploDeEventos.java
EVENTOS JDK 1.1.x
Muestra una ventana con 3 botones que cambian el color al pincharlos
import java.awt.*;
import java.awt.event.*;
class BotonesDeColores implements MouseListener, ActionListener
{
Declara los componentes que luego se usaran para crear la interfaz grafica
TextArea areaTexto;
Button boton1, boton2, boton3;
MenuBar barraMenu;
Menu menu1;
MenuItem opcionMenu1_1;
Label label1;
Panel panel1;
Constructor
public BotonesDeColores()
{
Frame f = new Frame();
f.setLayout(new BorderLayout());
Creo todos los objetos Componentes
panel1 = new Panel();
label1 = new Label("Normal");
boton1 = new Button("Rojo");
boton2 = new Button("Azul");
boton3 = new Button("Verde");
barraMenu = new MenuBar();
menu1 = new Menu("Archivo");
opcionMenu1_1 = new MenuItem("Salir");
areaTexto = new TextArea(15, 10);
areaTexto.setEditable(false);
Estructuro todos los componentes
panel1.add(boton1);
panel1.add(boton2);
panel1.add(boton3);
panel1.add(label1);
menu1.add(opcionMenu1_1);
barraMenu.add(menu1);
f.add("North", panel1);
f.add("South", areaTexto);
f.setMenuBar(barraMenu);
f.setSize(300,320);
f.setVisible(true);
Observador de areaTexto
areaTexto.addMouseListener(this);
Observador de label1
label1.addMouseListener(this);
Observador de los botones
boton1.addActionListener(this);
boton2.addActionListener(this);
boton3.addActionListener(this);
Observador de la opcion de menu
opcionMenu1_1.addActionListener(this);
}
Metodos del interfaz MouseListener
public void mouseClicked(MouseEvent e)
{
areaTexto.append("mouseClicked: x=" + e.getX() + ", y=" + e.getY() + "\n");
}
public void mouseEntered(MouseEvent e)
{
areaTexto.append("mouseEntered: x=" + e.getX() + ", y=" + e.getY() + "\n");
if (e.getComponent()
label1)
{
label1.setText("CURSIVA");
label1.setBackground(Color.red);
areaTexto.setFont(new Font("TimesRoman", Font.ITALIC, 14));
}
}
public void mouseExited(MouseEvent e)
{
areaTexto.append("mouseExited: x=" + e.getX() + ", y=" + e.getY() + "\n");
if (e.getComponent()
label1)
{
label1.setText("Normal");
label1.setBackground(Color.white);
areaTexto.setFont(new Font("TimesRoman", Font.PLAIN, 14));
}
}
public void mousePressed(MouseEvent e)
{
areaTexto.append("mousePressed: x=" + e.getX() + ", y=" + e.getY() + "\n");
}
public void mouseReleased(MouseEvent e)
{
areaTexto.append("mouseReleased: x=" + e.getX() + ", y=" + e.getY() + "\n");
}
Metodos del interfaz ActionListener
public void actionPerformed(ActionEvent e)
{
String cadena = e.getActionCommand();
if (cadena.equals("Salir"))
{
System.exit(0);
}
else
{
cambiaColor(cadena);
}
}
Otros metodos
public void cambiaColor(String nombreColor)
{
if (nombreColor.equals("Rojo")) areaTexto.setBackground(Color.red);
else if (nombreColor.equals("Azul")) areaTexto.setBackground(Color.blue);
else if (nombreColor.equals("Verde")) areaTexto.setBackground(Color.green);
else if (nombreColor.equals("Amarillo")) areaTexto.setBackground(Color.yellow);
}
}
Metodo de entrada al programa. Es el primero que se ejecuta al lanzarlo
public class EjemploDeEventos
{
public static void main(String args[])
{
BotonesDeColores bdc = new BotonesDeColores();
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 


Control de eventos mediante clases internas

|| EjemploDeEventos2.java
EVENTOS JDK 1.1.x mediante clases internas
import java.awt.*;
import java.awt.event.*;
class BotonesDeColores
{
TextArea areaTexto;
Button boton1, boton2, boton3;
MenuBar barraMenu;
Menu menu1;
MenuItem opcionMenu1_1;
Label label1;
Panel panel1;
SymMouse aSymMouse;
SymAction aSymAction;
Constructor
public BotonesDeColores()
{
Frame f = new Frame();
f.setLayout(new BorderLayout());
Creo todos los objetos Componentes
panel1 = new Panel();
label1 = new Label("Normal");
boton1 = new Button("Rojo");
boton2 = new Button("Azul");
boton3 = new Button("Verde");
barraMenu = new MenuBar();
menu1 = new Menu("Archivo");
opcionMenu1_1 = new MenuItem("Salir");
areaTexto = new TextArea(15, 10);
areaTexto.setEditable(false);
Estructuro todos los componentes
panel1.add(boton1);
panel1.add(boton2);
panel1.add(boton3);
panel1.add(label1);
menu1.add(opcionMenu1_1);
barraMenu.add(menu1);
f.add("North", panel1);
f.add("South", areaTexto);
f.setMenuBar(barraMenu);
f.setSize(300,320);
f.setVisible(true);
aSymMouse = new SymMouse();
aSymAction = new SymAction();
Observador de areaTexto
areaTexto.addMouseListener(aSymMouse);
Observador de label1
label1.addMouseListener(aSymMouse);
Observador de los botones
boton1.addActionListener(aSymAction);
boton2.addActionListener(aSymAction);
boton3.addActionListener(aSymAction);
Observador de la opcion de menu
opcionMenu1_1.addActionListener(aSymAction);
}
Clase interna que controla los eventos de raton. Extiende de MouseAdapter que a su vez implementa el interfaz MouseListener
class SymMouse extends MouseAdapter
{
public void mouseClicked(MouseEvent event)
{
areaTexto.append("mouseClicked: x=" + event.getX() + ", y=" + event.getY() + "\n");
Object object = event.getSource();
if (object
boton1)
{
boton1_MouseClick(event);
areaTexto.append("\t boton1");
}
else if (object
boton2)
{
boton2_MouseClick(event);
areaTexto.append("\t boton2");
}
else if (object
boton3)
{
boton3_MouseClick(event);
areaTexto.append("\t boton3");
}
}
 
public void mouseEntered(MouseEvent e)
{
areaTexto.append("mouseEntered: x=" + e.getX() + ", y=" + e.getY() + "\n");
if (e.getComponent()
label1)
{
label1.setText("CURSIVA");
label1.setBackground(Color.red);
areaTexto.setFont(new Font("TimesRoman", Font.ITALIC, 14));
}
}
public void mouseExited(MouseEvent e)
{
areaTexto.append("mouseExited: x=" + e.getX() + ", y=" + e.getY() + "\n");
if (e.getComponent()
label1)
{
label1.setText("Normal");
label1.setBackground(Color.white);
areaTexto.setFont(new Font("TimesRoman", Font.PLAIN, 14));
}
}
public void mousePressed(MouseEvent e)
{
areaTexto.append("mousePressed: x=" + e.getX() + ", y=" + e.getY() + "\n");
}
public void mouseReleased(MouseEvent e)
{
areaTexto.append("mouseReleased: x=" + e.getX() + ", y=" + e.getY() + "\n");
}
}
fin de la clase interna SymMouse
Clase interna que controla los eventos generales
class SymAction implements ActionListener
{
Metodos del interfaz ActionListener
public void actionPerformed(ActionEvent e)
{
String cadena = e.getActionCommand();
if (cadena.equals("Salir"))
{
System.exit(0);
}
else
{
cambiaColor(cadena);
}
}
} fin de la clase interna SymMouse
 
public void cambiaColor(String nombreColor)
{
if (nombreColor.equals("Rojo")) areaTexto.setBackground(Color.red);
else if (nombreColor.equals("Azul")) areaTexto.setBackground(Color.blue);
else if (nombreColor.equals("Verde")) areaTexto.setBackground(Color.green);
else if (nombreColor.equals("Amarillo")) areaTexto.setBackground(Color.yellow);
}
}
fin de la clase BotonesDeColores
public class EjemploDeEventos2
{
public static void main(String args[])
{
new BotonesDeColores();
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 


Aplicación de los streams a la lectura y escritura en disco

|| EscribeEnDisco.java
import java.io.*;
public class EscribeEnDisco
{
public static void main(String args[])
{
FileOutputStream fos = null;
PrintWriter pw = null;
Crea el fichero para guardar los datos
File ficheroDeSalida = new File("c:/Javadir/historia", "salida.txt");
try
{
fos = new FileOutputStream(ficheroDeSalida);
} catch (IOException e)
{
System.out.println(e);
}
catch(SecurityException e)
{
System.out.println(e);
}
pw = new PrintWriter(fos);
Escribe una secuencia de texto en el fichero
for (int i = 0; i < 10; i++)
{
pw.println("Linea " + i + " " + System.currentTimeMillis());
}
Escribir realmente en el disco
pw.flush();
Cerrar Streams
try
{
fos.close();
} catch(IOException e)
{
System.out.println(e);
}
}
}
import java.io.*;
public class LeeDeDisco
{
public static void main(String args[])
{
FileInputStream fis = null;
BufferedReader br = null;
String linea;
File ficheroDeEntrada = new File("c:/Javadir/historia", "salida.txt");
try
{
fis = new FileInputStream(ficheroDeEntrada);
} catch (FileNotFoundException e)
{
System.out.println(e);
}
catch(SecurityException e)
{
System.out.println(e);
}
br = new BufferedReader(new InputStreamReader(fis));
while (true)
{
try
{
linea = br.readLine();
pw.flush();
} catch (UnknownHostException e)
{
System.err.println(e);
}
catch (IOException e)
{
System.err.println(e);
}
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 


Utilización de los sockets para mandar mensajes entre dos máquinas

||
Cliente.java
import java.io.*;
import java.net.*;
public class Cliente
{
public static void main(String args[])
{
Socket socketCliente = null;
InputStream is = null;
OutputStream os = null;
BufferedReader br;
PrintWriter pw = null;
try {
socketCliente = new Socket("",3000); dirIP y port
System.out.println("Me he conectado con el servidor!");
Recibe texto de bienvenida
is = socketCliente.getInputStream( );
os = socketCliente.getOutputStream();
pw = new PrintWriter(os);
br = new BufferedReader(new InputStreamReader(is));
while (true)
{
if (is.available() != 0)
{
System.out.println(is.available());
System.out.println("El servidor me envia este mensaje: " + br.readLine());
}
}
pw.println("¿Que tal? Soy un cliente");
pw.flush();
} catch (UnknownHostException e)
{
System.err.println(e);
}
catch (IOException e)
{
System.err.println(e);
}
}
}
Servidor.java
import java.io.*;
import java.net.*;
public class Servidor
{
Constructor
public Servidor( )
{
super( );
}
public static void main(String args[])
{
int numeroDePuerto = 3000;
ServerSocket socketServidor = null;
OutputStream os = null;
InputStream is = null;
PrintWriter pw = null;
BufferedReader br;
try {
socketServidor = new ServerSocket(numeroDePuerto);
System.out.println("Servidor creado. Esperando conexion de clientes...");
} catch (IOException e)
{
System.err.println(e);
}
int contador = 0;
while (true)
{
try
{
Socket socketCliente = socketServidor.accept( );
System.out.println("He aceptado otro socket cliente");
System.out.println("Ya se han conectado " + ++contador + " clientes");
Envia texto de bienvenida
os = socketCliente.getOutputStream();
pw = new PrintWriter(os);
is = socketCliente.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
pw.println("HOLA. Bienvenido al servidor !");
pw.flush();
System.out.println("El cliente me envia este mensaje: " + br.readLine());
} catch (IOException e)
{
System.err.println(e);
}
}
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 


Muestra una página web dentro de un applet

||
CargaPaginaWeb.java
import java.net.*;
public class CargaPaginaWeb extends java.applet.Applet
{
public void init()
{
URL direccionURL = null;
try
{
direccionURL = new URL("http://www.yahoo.com/");
} catch(MalformedURLException e)
{
System.out.println(e);
}
getAppletContext().showDocument(direccionURL);
}
} ||
Carga la fuente de una pagina web en formato html y la muestra en pantalla

|| CargaOrigenDeURL.java
import java.io.*;
import java.net.URL;
public class CargaOrigenDeURL
{
Constructor
public CargaOrigenDeURL()
{
InputStream conn;
DataInputStream data;
String linea;
StringBuffer buferDeTexto = new StringBuffer();
URL direccionURL = null;
try
{
direccionURL = new URL("http://www.yahoo.com");
conn = direccionURL.openStream();
data = new DataInputStream(new BufferedInputStream(conn));
while ((linea = data.readLine()) != null)
{
buferDeTexto.append(linea + "\n");
}
System.out.println(buferDeTexto.toString());
} catch(IOException e) {}
}
public static void main(String args[])
{
new CargaOrigenDeURL();
}
} ||
[[http://www.unav.es/cti/manuales/Java/indice.html#inicio ]] 
Valora este capítulo: (13 opiniones)
Autor y licencia de 'Introducción al lenguaje JAVA - Ejemplo de programas'
Unav Extraído de: http://www.unav.es/cti

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'Introducción al lenguaje JAVA - Ejemplo de programas' (13)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este curso gratis



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Introducción al lenguaje JAVA - Ejemplo de programas'

Amplio tutorial de Java para empezar a trabajar y ampliar conocimientos de este lenguaje.
A diferencia de la orientación a procedimientos (OP), la orientación a objetos (OO) no concibe... Más »
La idea es dar una guía ordenada para el estudio de este lenguaje, muy poderoso... Más »
Este documento recopila la información de importantes autores en cuanto a programas de investigación se... Más »
Como es sabido, el concepto de función metalingüística y su ámbito de aplicación han quedado... Más »
¿Estás seguro de que deseas eliminar este capítulo?