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>