Introducción al lenguaje JAVA - Ejemplo de programas

13 - Ejemplo de programas

[editar]
Curso gratis creado por Unav. Extraido de: http://www.unav.es/cti
21 de Septiembre de 2005
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 ]] 
[editar]

14 opiniones

defaced By LatinHackTeam
OwNz yOur bOx syst3m...
We Are : d4n1ux eCORE x_Jeshua J3H3S chip d3 b10s RayoK3nt


defaced By LatinHackTeam
OwNz yOur bOx syst3m...
We Are : d4n1ux eCORE x_Jeshua J3H3S chip d3 b10s RayoK3nt

admin

defaced By LatinHackTeam
OwNz yOur bOx syst3m...
We Are : d4n1ux eCORE x_Jeshua J3H3S chip d3 b10s RayoK3nt

lala


lala

Ejemplos.

Desearia que por favor pusieran ejemplos para poder observarlos y darnos idea de lo que hace algun evento.
Muy bueno.

Me parece muy interesante el curso de java, continuen con esa labor gracioas.
1 2 3 | siguiente >

Cursos gratis relacionados con 'Introducción al lenguaje JAVA'

El lenguaje JavaScript es el complemento ideal del HTML, al permitir a la página realizar... Más »
El objetivo de este curso es aprender a programar en el lenguaje Ada, desde sus... Más »
Python es un lenguaje de programación de alto nivel, interpretado, interactivo y de propósito general. Más »
Cuando hablamos de un sitio web nos estamos refiriendo en realidad a un conjunto de... Más »
Linux es una gran herramienta, la uso desde hace años y se ha convertido en... Más »

Autor y licencia de 'Introducción al lenguaje JAVA'


Curso gratis de Unav. Extraido de: http://www.unav.es/cti CopyLeft
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.