Making an Applet Show a Document

Problem

You want an applet to transfer control to another web page.

Solution

Use the AppletContext method showDocument( ) .

Discussion

Any 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 17-3 only works correctly in a full browser; the AppletViewer does not display HTML pages, so it ignores this method!

Example 17-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 17-2 shows the program in operation.

Figure 17-2. ShowDocApplet program

If the ...

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.