practica 2 avance de la sala de chat

10
A continuación se muestran los códigos utilizados para la elaboración del proyecto de Sala de Chat así como las pantallas de los mismos. Código .html utilizado para Seleccionar los sitios desde la web. [Fig. 1.0] y su pantalla en la web [Fig. 1.1] Fig. 1.0 Código del Selector de Sitios web.

Upload: anonymous-zymamu

Post on 05-Dec-2015

63 views

Category:

Documents


0 download

DESCRIPTION

practica 2

TRANSCRIPT

Page 1: Practica 2 Avance de la Sala de Chat

A continuación se muestran los códigos utilizados para la elaboración del

proyecto de Sala de Chat así como las pantallas de los mismos.

Código .html utilizado para Seleccionar los sitios desde la web. [Fig. 1.0]

y su pantalla en la web [Fig. 1.1]

Fig. 1.0 Código del Selector de Sitios web.

Page 2: Practica 2 Avance de la Sala de Chat

Fig. 1.1 Aquí se muestra la ejecución del selector del sitio web y éste nos

manda un error al ejecutar el html debido a que el navegador no tiene

actualizado el plugin, el cual pudimos comprobar al ejecutar la aplicación

[Fig. 1.2] de java.

Fig. 1.2 En ésta captura se observa la ejecución de la aplicación del código de

selector de sitios sin presentar ningún error y mostrando la ventana de salida

con los sitios a poder seleccionar.

Page 3: Practica 2 Avance de la Sala de Chat

Posteriormente realizamos la prueba para leer archivos del servidor. A

continuación mostraremos la ejecución de la aplicación [Fig. 2.0] y la ventana

para introducir la URL.

Fig. 2.0 Ejecución de la aplicación para comprobar que se puedan leer archivos

del servidor.

A continuación mostraremos los códigos completos del avance de la

Práctica Sala de Chat.

Page 4: Practica 2 Avance de la Sala de Chat

// Fig. 24.2: SelectorSitios.java

// Este programa carga un documento de un URL.

import java.net.MalformedURLException;

import java.net.URL;

import java.util.HashMap;

import java.util.ArrayList;

import java.awt.BorderLayout;

import java.applet.AppletContext;

import javax.swing.JApplet;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JScrollPane;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.ListSelectionListener;

public class SelectorSitios extends JApplet

{

private HashMap< Object, URL > sitios; // nombres de sitios y URLs

private ArrayList< String > nombresSitios; // nombres de sitios

private JList selectorSitios; // lista de sitios a elegir

// lee los parámetros de HTML y establece la GUI

public void init()

{

sitios = new HashMap< Object, URL >(); // crea objeto HashMap

nombresSitios = new ArrayList< String >(); // crea objeto ArrayList

// obtiene los parámetros del documento de HTML

obtenerSitiosDeParametrosHTML();

Page 5: Practica 2 Avance de la Sala de Chat

// crea componentes de GUI e interfaz de esquema

add( new JLabel( "Seleccione un sitio para navegar" ),

BorderLayout.NORTH );

selectorSitios = new JList( nombresSitios.toArray() ); // llena el objeto JList

selectorSitios.addListSelectionListener(

new ListSelectionListener() // clase interna anónima

{

// va al sitio seleccionado por el usuario

public void valueChanged( ListSelectionEvent evento )

{

// obtiene el nombre del sitio seleccionado

Object objeto = selectorSitios.getSelectedValue();

// usa el nombre del sitio para localizar el URL correspondiente

URL nuevoDocumento = sitios.get( objeto );

// obtiene el contenedor de applets

AppletContext navegador = getAppletContext();

// indica al contenedor de applets que cambie de página

navegador.showDocument( nuevoDocumento );

} // fin del método valueChanged

} // fin de la clase interna anónima

); // fin de la llamada a addListSelectionListener

add( new JScrollPane( selectorSitios ), BorderLayout.CENTER );

} // fin del método init

// obtiene los parámetros del documento de HTML

private void obtenerSitiosDeParametrosHTML()

{

Page 6: Practica 2 Avance de la Sala de Chat

String titulo; // titulo del sitio

String ubicacion; // ubicacion del sitio

URL url; // URL de la ubicación

int contador = 0; // cuenta el número de sitios

titulo = getParameter( "titulo" + contador ); // obtiene el título del primer

sitio

// itera hasta que no haya más parámetros en el documento de HTML

while ( titulo != null )

{

// obtiene la ubicación del sitio

ubicacion = getParameter( "ubicacion" + contador );

try // coloca titulo/URL en objeto HashMap y titulo en objeto ArrayList

{

url = new URL( ubicacion ); // convierte la ubicación en URL

sitios.put( titulo, url ); // coloca titulo/URL en objeto HashMap

nombresSitios.add( titulo ); // coloca titulo en objeto ArrayList

} // fin de try

catch ( MalformedURLException excepcionURL )

{

excepcionURL.printStackTrace();

} // fin de catch

contador++;

titulo = getParameter( "titulo" + contador ); // obtiene el título del siguiente

sitio

} // fin de while

} // fin del método obtenerSitiosDeParametrosHTML

} // fin de la clase SelectorSitios

Page 7: Practica 2 Avance de la Sala de Chat

// Fig. 24.3: LeerArchivoServidor.java

// Uso de un objeto JEditorPane para mostrar el contenido de un archivo

en un servidor Web.

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.IOException;

import javax.swing.JEditorPane;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextField;

import javax.swing.event.HyperlinkEvent;

import javax.swing.event.HyperlinkListener;

public class LeerArchivoServidor extends JFrame

{

private JTextField campoIntroducir; // objeto JTextField para escribir el

nombre del sitio

private JEditorPane areaContenido; // para mostrar un sitio Web

// establece la GUI

public LeerArchivoServidor()

{

super( "Navegador Web simple" );

// crea campoIntroducir y registra su componente de escucha

campoIntroducir = new JTextField( "Escriba el URL del archivo" );

campoIntroducir.addActionListener(

new ActionListener()

{

Page 8: Practica 2 Avance de la Sala de Chat

// obtiene el documento especificado por el usuario

public void actionPerformed( ActionEvent evento )

{

obtenerLaPagina( evento.getActionCommand() );

} // fin del método actionPerformed

} // fin de la clase interna

); // fin de la llamada a addActionListener

add( campoIntroducir, BorderLayout.NORTH );

areaContenido = new JEditorPane(); // crea areaContenido

areaContenido.setEditable( false );

areaContenido.addHyperlinkListener(

new HyperlinkListener()

{

// si el usuario hizo clic en un hipervínculo, va a la página especificada

public void hyperlinkUpdate( HyperlinkEvent evento )

{

if ( evento.getEventType() == HyperlinkEvent.EventType.ACTIVATED )

obtenerLaPagina( evento.getURL().toString() );

} // fin del método hyperlinkUpdate

} // fin de la clase interna anónima

); // fin de la llamada a addHyperlinkListener

add( new JScrollPane( areaContenido ), BorderLayout.CENTER );

setSize( 400, 300 ); // establece el tamaño de la ventana

setVisible( true ); // muestra la ventana

} // fin del constructor de LeerArchivoServidor

// carga el documento

Page 9: Practica 2 Avance de la Sala de Chat

private void obtenerLaPagina( String ubicacion )

{

try // carga el documento y muestra la ubicación

{

areaContenido.setPage( ubicacion ); // establece la página

campoIntroducir.setText( ubicacion ); // establece el texto

} // fin de try

catch ( IOException excepcionES )

{

JOptionPane.showMessageDialog( this,

"Error al obtener el URL especificado", "URL incorrecto",

JOptionPane.ERROR_MESSAGE );

} // fin de catch

} // fin del método obtenerLaPagina

} // fin de la clase LeerArchivoServidor

// Fig. 24.4: PruebaLeerArchivoServidor.java

// Crea e inicia un objeto LeerArchivoServidor.

import javax.swing.JFrame;

public class PruebaLeerArchivoServidor

{

public static void main( String args[] )

{

LeerArchivoServidor aplicacion = new LeerArchivoServidor();

aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

} // fin de main

} // fin de la clase PruebaLeerArchivoServidor

Page 10: Practica 2 Avance de la Sala de Chat