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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.