D� uma olhada. Qualquer coisa me diz....

Lincolm Ferreira de Aguiar
WebMaster - QueroProgramar
[EMAIL PROTECTED]

www.geocities.com/lincolmf
----- Original Message -----
From: "Andr� Luis Coudeiro" <[EMAIL PROTECTED]>
To: "Lista - SouJava" <[EMAIL PROTECTED]>
Sent: Tuesday, January 15, 2002 1:02 PM
Subject: [java-list] CONSTRUINDO UM BROWSER


> Quer ter seu pr�prio endere�o na Internet?
> Garanta j� o seu e ainda ganhe cinco e-mails personalizados.
> Dom�niosBOL - http://dominios.bol.com.br
>
>
>
>
>
> Estou precisando contruir um browser e gostaria de
> saber onde posso encontrar APIs que implementem a
> abertura da pagina html e plug-ins.
>
> agrade�o a aten��o
>
>
>
>
> 
>_______________________________________________________________________________________________
> Yahoo! GeoCities
> Tenha seu lugar na Web. Construa hoje mesmo sua home page no Yahoo! GeoCities. � 
>f�cil e gr�tis!
> http://br.geocities.yahoo.com/
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.text.*;
import javax.accessibility.*;

import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.IOException;

public class Browser extends JFrame implements HyperlinkListener {
    //JComboBox endereco;
    JTextField endereco;
    JButton abrir;
    JEditorPane html;

    JPanel controles;
    JPanel navegador;

    URL url;

    public final static Border borda2 = new EmptyBorder(5,5,5,5);

    public Browser() {

        //endereco = new JComboBox();
        endereco = new JTextField("",30);
        abrir = new JButton("Ir");
        abrir.addActionListener(new ActionListener(){
             public void actionPerformed(ActionEvent e){
                abrirURL();
             }
         });

        controles = new JPanel();
        controles.setLayout(new FlowLayout());
        controles.add(endereco);
        controles.add(abrir);

        getContentPane().setLayout(new BorderLayout());
        getAccessibleContext().setAccessibleName("Navegador web em Java");
        getAccessibleContext().setAccessibleDescription("Navegador Java de Lincolm Ferreira de Aguiar");

        getContentPane().add("North", controles);

        try {
           url = null;
           String u = "http://localhost/asplab/";//endereco.getText();

           if(! u.equals(null)){
              try {
                 url = new URL(u);
              }
              catch(MalformedURLException e) {
                 alert("N�o foi poss�vel abrir o caminho especificado.");
              }
           } else {
              alert("Informe o caminho.");
           }

           if(url != null) {
              html = new JEditorPane(url);
              html.setEditable(false);
              html.addHyperlinkListener(this);
              JScrollPane scroller = new JScrollPane();
              scroller.setBorder(borda2);
              JViewport vp = scroller.getViewport();
              vp.add(html);
              vp.setBackingStoreEnabled(true);
              getContentPane().add(scroller, BorderLayout.CENTER);
            }
        }
        catch(MalformedURLException e) {
            alert("N�o foi possivel abrir o caminho: " + endereco.getText());
        }
        catch (IOException e) {
            alert("N�o foi possivel abrir o caminho: " + endereco.getText());
        }

        Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
        int w = dim.width;
        int h = dim.height - 20;

        setSize(w, h);
        setTitle("Browser");
        endereco.setText(url.toString());
        show();
    }

    public static void main(String args[]){

       try{
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       }
       catch(Exception e){
       }

       Browser bw = new Browser();

       WindowListener wl = new WindowAdapter(){
           public void windowClosing(WindowEvent e){
              System.exit(0);
           }
       };
       bw.addWindowListener(wl);
    }

    public void abrirURL(){
       try{
          html.setPage(endereco.getText());
       }
       catch(Exception e){

       }
    }

    public void alert(String msg){
       JOptionPane.showMessageDialog(null,msg,"Aviso",JOptionPane.WARNING_MESSAGE);
    }

    public void hyperlinkUpdate(HyperlinkEvent e) {
        if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
            linkActivated(e.getURL());
        }
    }

    protected void linkActivated(URL u) {
        Cursor c = html.getCursor();
        Cursor waitCursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        html.setCursor(waitCursor);
        SwingUtilities.invokeLater(new PageLoader(u, c));
    }

    /**
     * temporary class that loads synchronously (although
     * later than the request so that a cursor change
     * can be done).
     */
    class PageLoader implements Runnable {

        PageLoader(URL u, Cursor c) {
            url = u;
            cursor = c;
        }

        public void run() {
            if (url == null) {
                // restore the original cursor
                html.setCursor(cursor);

                // PENDING(prinz) remove this hack when
                // automatic validation is activated.
                Container parent = html.getParent();
                parent.repaint();
            } else {
                Document doc = html.getDocument();
                try {
                    html.setPage(url);
                } catch (IOException ioe) {
                    html.setDocument(doc);
                    getToolkit().beep();
                } finally {
                    // schedule the cursor to revert after
                    // the paint has happended.
                    url = null;
                    SwingUtilities.invokeLater(this);
                }
            }
        }

        URL url;
        Cursor cursor;
    }

}
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a