Pergunta

Como uma applet pode comandar o browser para carregar uma página específica?

Resposta

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