[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…

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
Etiquetas: java
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.
54 Comentarios | deja el tuyo



Mmm teoricamente despues de compliarlo deberia andar verdad? o necesita otras cosas? por ke no logro ahcerlo funcionar …
Ya lo hice funcionar… pero sinceramente no se puede leer sin css xD tenes alguna idea de como se las puede agregar?
Gracias
Hola Deyabu…
Con este ejemplo tan simple no es posible hacer funcionar correctamente el CSS.
Lo que te recomiendo es qu le eches un vistazo a este proyecto:
http://lobobrowser.org/java-browser.jsp
Es software libre, así que puedes mirar el código y aprender de él. Ese navegador sí soporta CSS y JavaScript.
Un saludo!
Muchisimas gracias! ya lo reviso!
favor asesorar como actualizar navegador java…
como haces para que la aplicacion no se quede Clavada mientras hace la busqueda?
no se le pude poner nombre, iconos cosas así