gentoo linux, java, software libre y otras hierbas
Mar, 03 2008 - 11:57 am

[código] 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 sea suficiente, 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

Descargar código fuente

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

58 Comentarios | deja el tuyo

Un enlace entrante

57 Comentarios en “[código] Crear un navegador Web básico en Java”

  1. deyabu dice:

    Mmm teoricamente despues de compliarlo deberia andar verdad? o necesita otras cosas? por ke no logro ahcerlo funcionar …

  2. gabino cruz dice:

    favor asesorar como actualizar navegador java…

  3. como haces para que la aplicacion no se quede Clavada mientras hace la busqueda?

  4. DAvid dice:

    no se le pude poner nombre, iconos cosas así

  5. Alan dice:

    se podra reproducir flash????

    • Cristian dice:

      Tal como está este navegador de ejemplo: NO. Sin embargo, si sabes lo que haces, puedes utilizar las librerías del plugin de flash que usan los navegadores normales (recuerda que Flash pertenece a Adobe… no es que uno programe algo para reproducir flash de buenas a primeras). Por supuesto tendrías que usar una librería tipo JNI o similares ;)

      Un saludo!

  6. javierdpp dice:

    pueden usar una libreria de java que se llama djproject no tiene ningun problema me parece unas de las mejores librerias con respecto a este tema de navegadores hechos en java

¡Déjanos tu comentario!