Como uma applet pode comandar o browser para carregar uma página específica?
É possível para uma applet comandar o browser para carregar uma página específica através do uso do método showDocument() da classe java.applet.AppletContext. Para tanto é necessário obter-se uma referência para o contexto corrente da applet (o contexto da applet refere-se exatamente ao browser que a está executando). O método showDocument() utiliza um objeto da classe java.net.URL como parâmetro, sendo que tais objetos podem construídos a partir de uma String.
Temos abaixo uma applet que contêm apenas uma caixa de texto. Fornecendo-se uma URL nesta caixa de texto e pressionando-se "enter" fazemos que a applet comande o browser para exibir tal pagina:
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class TrocaPágina extends Applet
implements actionListener {
TextField tfURL;
// Método de inicialização da Applet
public void init() {
tfURL = new TextField(30);
tfURL.addActionListener(this);
add(tfURL);
}
// Implementação do ActionListener
public void actionPerformed(ActionEvent e) {
try {
// Cria um objeto tipo URL
URL pagina = new URL(tfURL.getText());
// Comanda browser para exibir página
getAppletContext().showDocument(pagina);
// Indica troca de URL na barra de status
showStatus("Nova página exibida");
} catch (MalformedURLException e) {
// Indica URL inválida na barra de status
showStatus("URL inválida");
}
}
}
Para testar esta applet num browser qualquer basta criar a página HTML abaixo e carregá-la no browser:
<HTML> <HEAD> <TITLE>Troque a Página</TITLE> </HEAD> <APPLET code="TrocaPagina.class" width=150 height=30></APPLET> </HTML>