ProblemYou want an applet to transfer control to another web page. SolutionUse the AppletContext method showDocument( ) . DiscussionAny applet can request the browser that contains it to show a new web page by passing the new URL into the showDocument( ) method. Usually, the browser replaces the current page with the target page. This, of course, triggers a call to the applet's stop( ) method. Note that the applet shown in Example 18-3 works correctly only in a full browser; the AppletViewer does not display HTML pages, so it ignores this method! Example 18-3. ShowDocApplet.java/** ShowDocApplet: Demonstrate showDocument( ). */ public class ShowDocApplet extends Applet { // String targetString = "http://www.darwinsys.com/javacook/secret.html"; String targetString = "file:///c:/javasrc/network/ShowDocApplet.java"; /** The URL to go to */ URL targetURL; /** Initialize the Applet */ public void init( ) { setBackground(Color.gray); try { targetURL = new URL(targetString); } catch (MalformedURLException mfu) { throw new IllegalArgumentException( "ShowDocApplet got bad URL " + targetString); } Button b = new Button("View Secret"); add(b); b.addActionListener(new ActionListener( ) { public void actionPerformed(ActionEvent e) { getAppletContext( ).showDocument(targetURL); } }); } public void stop( ) { System.out.println("Ack! Its been fun being an Applet. Goodbye!"); } } Figure 18-2 shows the program in operation. Figure 18-2. ShowDocApplet programIf the URL is unreachable, the browser notifies the user with a dialog, and the current page (including the applet) is left in view. |