miércoles, 30 de marzo de 2011

Buscador de clave en java

//    Clase Principal

import java.awt.*;
import java.lang.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import java.net.*;

class BuscadorPalabrasClave extends JFrame implements ActionListener {
    //    Atributos
   
    //Etiquetas
    JLabel lweb=new JLabel     ("Página web    ");
    JLabel lpalabras=new JLabel("Palabra clave ");
    JLabel larchivo=new JLabel ("Archivo       ");
    JLabel lnumPalabras=new JLabel("Nº Palabras");
   
    //Cajas de texto
    JTextField txtWeb=new JTextField(20);
    JTextField txtArchivo=new JTextField(24);
    JTextField txtPalabras=new JTextField(20);
    JTextField txtNumPalabras=new JTextField(3);
    JTextArea txtCodigo=new JTextArea(23,50);
   
    //Botones
    JButton btBuscar=new JButton("   Buscar   ");
    JButton btBorrar=new JButton("   Borrar   ");
    JButton btExaminar=new JButton("Examinar...");
   
    //Menu
    JMenuBar MBarra = new JMenuBar();
    JMenu MArchivo=new JMenu("Archivo");
        JMenuItem MBuscar=new JMenuItem("Buscar");
        JMenuItem MBorrar=new JMenuItem("Borrar");
        JMenuItem MSalir=new JMenuItem("Salir");
       
    JMenu MOpciones=new JMenu("Opciones");
        JMenu MBusc=new JMenu("Buscar en");
            ButtonGroup BgBuscar=new ButtonGroup();
            JRadioButtonMenuItem MWeb=new JRadioButtonMenuItem("Web");
            JRadioButtonMenuItem MDesdeArchivo=new JRadioButtonMenuItem("Desde Archivo");
        JCheckBoxMenuItem Mmayusulas=new JCheckBoxMenuItem("Diferenciar Mayus/min");
        JCheckBoxMenuItem MProxyPuerto=new JCheckBoxMenuItem("Configuración proxy");
   
    //
    String proxy="";
       
    //Constructor
    BuscadorPalabrasClave() {
   
   
    //Poner Barra en el JFrame
    MBarra.add(MArchivo);
        MArchivo.add(MBuscar);
            MBuscar.addActionListener(this);
        MArchivo.add(MBorrar);
            MBorrar.addActionListener(this);
        MArchivo.addSeparator(); //Separador entre ITems
        MArchivo.add(MSalir);
            MSalir.addActionListener(this);
    MBarra.add(MOpciones);
        MOpciones.add(MBusc);
            MBusc.add(MWeb);
                MWeb.addActionListener(this);
            MBusc.add(MDesdeArchivo);
                MDesdeArchivo.addActionListener(this);
            BgBuscar.add(MWeb);
            MWeb.setSelected(true);
            BgBuscar.add(MDesdeArchivo);
        MOpciones.add(Mmayusulas);
            Mmayusulas.addActionListener(this);
        MOpciones.add(MProxyPuerto);
            MProxyPuerto.addActionListener(this);
                   
    this.setJMenuBar(MBarra);
   
    //Panel Sur
    JPanel PSur=new JPanel();
        PSur.add(btBuscar);
            btBuscar.addActionListener(this);
        PSur.add(btBorrar);
            btBorrar.addActionListener(this);
        PSur.add(lnumPalabras);
        PSur.add(txtNumPalabras);
    this.add(PSur,"South");
   
    //Panel Centro
    JPanel PCentro=new JPanel();
    PCentro.setLayout(new FlowLayout() );
        JPanel PIzquierda=new JPanel();
        PIzquierda.setLayout(new GridLayout(3,1));
            JPanel Ppalabras=new JPanel();
            Ppalabras.add(lpalabras);
            Ppalabras.add(txtPalabras);
           
            JPanel PWeb=new JPanel();
            PWeb.add(lweb);
            PWeb.add(txtWeb);
           
            JPanel PArchivo=new JPanel();
            PArchivo.add(larchivo);
            PArchivo.add(txtArchivo);
            PArchivo.add(btExaminar);
                btExaminar.addActionListener(this);
           
        PIzquierda.add(Ppalabras);
        PIzquierda.add(PWeb);
        PIzquierda.add(PArchivo);
       
        //Panel para paroner la barras en el area de texto
        JScrollPane barras=new JScrollPane(txtCodigo,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
       
        JPanel PCodigo=new JPanel();
            PCodigo.add(barras);
           
                   
    PCentro.add(PIzquierda);
    PCentro.add(PCodigo);
    this.add(PCentro,"Center");
   
    txtWeb.setText("http://todojava.awardspace.com");
   
    //Método para cerrar la ventana
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent we)
             {
                 System.exit(0);
             }
        });
       
        //Ocultar Abrir archivo
        larchivo.setVisible(false);
        txtArchivo.setVisible(false);
        btExaminar.setVisible(false);
       
        //Bloquear caja de texto
        txtCodigo.setEditable(false);
        txtNumPalabras.setEditable(false);
       
       
        // Propiedades de la ventana
        setTitle("Buscador Plabras Clave V 1.0");   
        setResizable(false);
        setSize(600,600);
        setVisible(true);
    }
   
    public void actionPerformed(ActionEvent ae){
        if(ae.getSource()==Mmayusulas){
           
        }
        if(ae.getSource()==btExaminar){
            Abrir();
        }
        if(ae.getSource()==MWeb){
            CambiarWebArchivo(false);
        }
        if(ae.getSource()==MDesdeArchivo){
            CambiarWebArchivo(true);
        }
        if(ae.getSource()==btBuscar || ae.getSource()==MBuscar){
            comoBuscar();
        }
        if(ae.getSource()==MSalir) System.exit(0);
       
        if(ae.getSource()==MProxyPuerto){
            if(MProxyPuerto.isSelected())
            proxy=JOptionPane.showInputDialog("Configuración de internet. proxy:puerto \n Ej: 192.168.0.1:3357");
        }
        if(ae.getSource()==MBorrar || ae.getSource()==btBorrar)
        {
            txtCodigo.setText("");
            txtPalabras.setText("");
            txtNumPalabras.setText("");
        }
    }
   
   
    //Punto de entrada de la aplicación
   
    public static void main (String []args){
        new BuscadorPalabrasClave();
    }
   
   
    //****************** Métodos de la clase ******************
   
    //Método de dónde buscar web o archivo
    void comoBuscar()
    {
            if(MWeb.isSelected()==true)
            {
                String texto="";
                try
                     {

                     //En caso de tener proxy
                     if(MProxyPuerto.isSelected()){
                     //separar proxy y puerto
                    int posDospuntos=proxy.indexOf(":");
                    String dir=proxy.substring(0,posDospuntos);
                   
                    String puerto=proxy.substring(posDospuntos+1,proxy.length());
                     System.setProperty("http.proxyHost",dir);
                     System.setProperty("http.proxyPort",puerto);
                     }
                     URL direccion=new URL(txtWeb.getText());
                     InputStreamReader isr=new InputStreamReader(direccion.openStream());
                     BufferedReader entrada=new BufferedReader(isr);
                     String linea=null;
                     while((linea=entrada.readLine())!=null){
                                 texto+=linea +"\n";
                             }
                             entrada.close();
                         }
                         catch(MalformedURLException mre){
                             System.out.println(mre);
                         }
                         catch(IOException ioe){
                             System.out.println(ioe);
                         }
                txtCodigo.setText(texto);
                buscarPalbara();
            }
            else{
                buscarPalbara();
            }
    }
   
    //Método para buscar palbras clave
    void buscarPalbara(){
        int posicion=0;
        int numPalabras=0;
        String palabra="";
        String TextoBusc="";
        String token="";
        palabra=txtPalabras.getText();
        TextoBusc=txtCodigo.getText();
        //Uso de la clase StringTokenizer
        StringTokenizer Busca=new StringTokenizer(TextoBusc,"\"'!¡., \t\n()[]?¿-_@");
        while(Busca.hasMoreTokens()!=false)
            {
            String palabrilla=Busca.nextToken();
            //Diferenciando entre mayúsculas y minúsculas
            if(Mmayusulas.isSelected()){
                if(palabrilla.equals(palabra))numPalabras++;
                }
            //Sin deferenciar entre mayúsculas y minúsculas
            else {
                if(palabrilla.toLowerCase().equals(palabra.toLowerCase()))numPalabras++;
                }
            }
    txtNumPalabras.setText(Integer.toString(numPalabras));
    }
    //Método de cambiar estado Buscar en web o desde archivo
    void CambiarWebArchivo(boolean act){
    //    Archivo
    larchivo.setVisible(act);
    txtArchivo.setVisible(act);
    btExaminar.setVisible(act);
    //    Web
    lweb.setVisible(!act);
    txtWeb.setVisible(!act);
   
    }
   
    //Método de abrir fichero
         void Abrir (){
                 String Text="";
                try
                {
                       JFileChooser fc=new JFileChooser(System.getProperty("user.dir")); //System.getProperty("user.dir") abre el fichero de diálogo en el mismo directorio de la clase
                     fc.showOpenDialog(this);
                     File Abrir=fc.getSelectedFile(); //Devuelve el File que vamos a leer
                    
                     if(Abrir!=null)
                     {
                         //nombreArchivo=fc.getSelectedFile().getName();
                         //Pone en txtArchivo la ruta del archivo
                         txtArchivo.setText(fc.getSelectedFile().getAbsolutePath());
                     }
            
                     if(Abrir!=null)
                     {
                         txtCodigo.setText("");   
                         FileReader Fichero=new FileReader(Abrir);
                         BufferedReader leer=new BufferedReader(Fichero);
                         while((Text=leer.readLine())!=null)
                             {
                              txtCodigo.append(Text+ "\n"); //append Concatena la linea leida
                             }
                            
                           leer.close();
                     }
                    
                 }
                 catch(IOException ioe)
                    {
                      System.out.println(ioe);
                    }
         }

   
}

No hay comentarios:

Publicar un comentario

Con la tecnología de Blogger.

Busqueda

Sabias que?

chat

Popular Posts