src/JISApplet.java

/*
 * QuickTime for Java SDK Sample Code
 
   Usage subject to restrictions in SDK License Agreement
 * Copyright: © 1996-1999 Apple Computer, Inc.
 
 */
import java.net.*;
import java.applet.Applet;
import java.awt.*;
import java.io.*;
 
import quicktime.*;
import quicktime.io.QTFile;
 
import quicktime.app.QTFactory;
import quicktime.app.display.*;
import quicktime.app.image.ImageDrawer;
import quicktime.std.StdQTConstants;
 
// plays sound from a zip file asynchronously, i.e., in a Thread
 
import quicktime.*;
 
public class JISApplet extends Applet {
    private Drawable myQTContent;
    private QTCanvas myQTCanvas;
    
    public void init () {
        try {
            // this is a workaround required by a bug in the loading
            // mechanism of applets using the JavaPlugin on Netscape on Win
            if (QTSession.isInitialized() == false)
                QTSession.open();
            
                // set up a QTCanvas which will disply its content 
                // at its original size of smaller and centered in the space given
                // to the QTCanvas when the applet is layed out
            setLayout (new BorderLayout());
            myQTCanvas = new QTCanvas (QTCanvas.kInitialSize, 0.5F, 0.5F);
            add (myQTCanvas, "Center");     
                
                //our media is in the local directory
            QTFile file = new QTFile (getCodeBase().getFile() + getParameter("media"));
            myQTContent = QTFactory.makeDrawable (new FileInputStream(file), StdQTConstants.kDataRefFileExtensionTag, getParameter("ext"));
        } catch (QTException qtE) {
            qtE.printStackTrace();
                // something wrong with the content but QT itself is OK
            if (QTSession.isInitialized())
                myQTContent = ImageDrawer.getQTLogo();
            else
                throw new RuntimeException (qtE.getMessage());
        } catch (IOException ioE) {
            ioE.printStackTrace();
            myQTContent = ImageDrawer.getQTLogo();
        }
    }   
 
    public void start () { 
        try { // if QT was not successfully initialized the QTCanvas will be null
            if (myQTCanvas != null)
                myQTCanvas.setClient (myQTContent, true);           
        } catch (QTException e) {
            e.printStackTrace();
        }
    }
    
    public void stop () { 
        if (myQTCanvas != null)
            myQTCanvas.removeClient();
    }
    
    public void destroy () {
        QTSession.close();
    }
}