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]
-------------------------------------------------------------------------