Web Crawler
* Autor : "Joker"
*/
import java.applet.Applet;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.net.*;
import java.io.*;
//import java.awt.List.*;
public class WebCrawler extends Applet implements ActionListener, Runnable
{
public static final String SEARCH = "Search";
public static final StringSTOP = "Stop";
public static final String DISALLOW = "Disallow:";
public static final int SEARCH_LIMIT = 50;
Panel panelMain;
java.awt.List listMatches;
Label labelStatus;
//URL que se debe buscar
Vector vectorToSearch;
//URL ya buscado
Vector vectorSearched;
//URL que coinciden con
Vector vectorMatches;
//Thread = tema
Thread searchThread;
TextField textURL;
ChoicechoiceType;
public void init()
{
//Configurar el panel de interfaz de usuario principal
//Configurar el panel de interfaz de usuario principal
panelMain = new Panel ();
panelMain.setLayout (new BorderLayout (5, 5));
//Texto de entrada de componentes
Panel panelEntry = new Panel ();
panelEntry.setLayout (new BorderLayout (5, 5));
Panel panelURL = new Panel();panelURL.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
Label labelURL = new Label("URL de inicio:", Label.RIGHT);
panelURL.add (labelURL);
textURL = new TextField ("", 40);
panelURL.add (textURL);
panelEntry.add("North", panelURL);
Panel panelType = new Panel ();
panelType.setLayout (new FlowLayout (FlowLayout.LEFT, 5, 5));Label labelType = new Label("Tipo de Contenido: ", Label.RIGHT);
panelType.add (labelType);
choiceType = new Choice ();
choiceType.addItem ("text/html");
choiceType.addItem ("audio / basic");
choiceType.addItem ("audio / au");
choiceType.addItem ("audio / aiff");
choiceType.addItem ("audio / wav");choiceType.addItem ("video / mpeg");
choiceType.addItem ("video / x-avi");
panelType.add (choiceType);
panelEntry.add("South", panelType);
panelMain.add("North", panelEntry);
//Lista de URLs resultado
Panel panelListButtons = new Panel();
panelListButtons.setLayout(new BorderLayout(5, 5));
Panel panelList = new Panel();panelList.setLayout(new BorderLayout(5, 5));
Label labelResults = new Label("Resultados de la busqueda");
panelList.add("North", labelResults);
Panel panelListCurrent = new Panel();
panelListCurrent.setLayout(new BorderLayout(5, 5));
listMatches = new java.awt.List(10);
panelListCurrent.add("North", listMatches);labelStatus = new Label("");
panelListCurrent.add("South", labelStatus);
panelList.add("South", panelListCurrent);
panelListButtons.add("North", panelList);
//Botones de control de
Panel panelButtons = new Panel();
Button buttonSearch = new Button(SEARCH);
buttonSearch.addActionListener(this);panelButtons.add(buttonSearch);
Button buttonStop = new Button(STOP);
buttonStop.addActionListener(this);
panelButtons.add(buttonStop);
panelListButtons.add("South", panelButtons);
panelMain.add("South", panelListButtons);
add(panelMain);
setVisible(true);
repaint();
//Inicializar las estructuras de datos de b˙squedavectorToSearch = new Vector ();
vectorSearched = new Vector ();
vectorMatches = new Vector ();
//Establecer por defecto para el acceso URL
URLConnection.setDefaultAllowUserInteraction (false);
}
public void start ()
{
}
public void stop()
{
if (searchThread != null)
{...
Regístrate para leer el documento completo.