Java - browser con el boton find

 
Vista:

browser con el boton find

Publicado por felipe largacha (18 intervenciones) el 02/08/2011 02:51:56
lo que nesesito es el boton buscar dentro de un browser web hice este codigo pero no puedo ahcer que marque al palabra que estoy buscando con el comando caret?


import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.Caret;

public class LeerArchivoServidor extends JFrame {
private JTextField campoIntroducir;
private JEditorPane areaContenido;
private JTextField nombre;

// 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 );
String respuesta1 = JOptionPane.showInputDialog(null,"Escribe el texto a buscar:");
nombre = new JTextField(respuesta1, 20);
String textoABuscar = nombre.getSelectedText();

if (textoABuscar == null)
{
textoABuscar = "";
}

// Se abre el diálogo para pedir la cadena a buscar, rellenándolo con
// el texto actualmente seleccionado.
textoABuscar = JOptionPane.showInputDialog(
nombre, "Texto a buscar", textoABuscar);

// Se obtiene el texto del JTextArea.
String texto = nombre.getText();

// Se comprueba la posición del texto seleccionado si lo hay.
Caret seleccion = nombre.getCaret();
int posicion = 0;
if (seleccion.getDot() != seleccion.getMark())
{
posicion = seleccion.getDot();
}

// Se busca el texto a partir de la posición del texto seleccionado si lo
// habia
posicion = texto.indexOf(textoABuscar, posicion);

// Si no se encuentra el texto, se termina.
if (posicion == -1)

{
return;
}

// Se selecciona el texto encontrado. Valdría la llamada a areaTexto.select(),
// pero dice la API que es mejor llamar a esto.
nombre.setCaretPosition(posicion);
nombre.moveCaretPosition(posicion + textoABuscar.length());

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[] )
{
LeerArchivoServidor aplicacion = new LeerArchivoServidor();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}

} // fin de la clase LeerArchivoServidor
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder