Crear un navegador Web básico en Java

Siguiendo con el tema de redes en Java, veremos el uso de la clase JEditorPane, la cual podremos usar cuando el uso de JTextArea no seasuficiente, y necesitemos un area de texto en el que podamos incluir textos en distintos colores o hasta imágenes.

JEditorPane puede interpretar texto HTML, por lo que podremos mostrar contenidos de una página u otro recurso que utilice este estándar. Por tanto, veremos además como procesar eventos HyperlinkEvent para la manipulación de links.

El resultado…

Leer Archivo Servidor - Imagen

El código…

// Uso de un objeto JEditorPane para mostrar el contenido de un archivo en un servidor Web.
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
public class LeerArchivoServidor extends JFrame {
   private JTextField campoIntroducir;
   private JEditorPane areaContenido;
   // configurar GUI
   public LeerArchivoServidor()
   {
      super( "Navegador Web simple" );
      Container contenedor = getContentPane();
      // crear campoIntroducir y registrar su componente de escucha
      campoIntroducir = new JTextField( "Escriba aquí el URL del archivo" );
      campoIntroducir.addActionListener(
         new ActionListener() {
            // obtener el documento especificado por el usuario
            public void actionPerformed( ActionEvent evento )
            {
               obtenerLaPagina( evento.getActionCommand() );
            }
         } // fin de la clase interna
      ); // fin de la llamada a addActionListener
      contenedor.add( campoIntroducir, BorderLayout.NORTH );
      // crear areaContenido y registrar componente de escucha de evento HyperlinkEvent
      areaContenido = new JEditorPane();
      areaContenido.setEditable( false );
      areaContenido.addHyperlinkListener(
         new HyperlinkListener() {
            // si el usuario hizo clic en el hipervínculo, ir a la página especificada
            public void hyperlinkUpdate( HyperlinkEvent evento )
            {
               if ( evento.getEventType() ==
                    HyperlinkEvent.EventType.ACTIVATED )
                  obtenerLaPagina( evento.getURL().toString() );
            }
         } // fin de la clase interna
      ); // fin de la llamada a addHyperlinkListener
      contenedor.add( new JScrollPane( areaContenido ),
         BorderLayout.CENTER );
      setSize( 400, 300 );
      setVisible( true );
   } // fin del constructor de LeerArchivoServidor
   // cargar documento
   private void obtenerLaPagina( String ubicacion )
   {
      // cargar documento y mostrar ubicación
      try {
         areaContenido.setPage( ubicacion );
         campoIntroducir.setText( ubicacion );
      }
      catch ( IOException excepcionES ) {
         JOptionPane.showMessageDialog( this,
            "Error al recuperar el URL especificado", "URL incorrecto",
            JOptionPane.ERROR_MESSAGE );
      }
   } // fin del método obtenerLaPagina
   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      LeerArchivoServidor aplicacion = new LeerArchivoServidor();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }
} // fin de la clase LeerArchivoServidor

NAPSTER2011

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s