jython: how do you exit an applet early?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • gcash

    jython: how do you exit an applet early?

    I've written an applet using Java3D for rendering, which works fine if
    you have Java3D installed, of course.

    What I want to do is try to import the Java3D libraries and bail with an
    error message to the user if they're not there.

    You can't do "raise SystemExit" or "sys.exit(0 )" because both of those
    try to kill the browser's Java VM, which a) raises a security exception
    and b) isn't what I want anyway.

    A "return" statement does the trick as an applet, but raises a
    "SyntaxErro r: 'return' outside function" and doesn't even run when using
    Jython from the command line to test things. (It shouldn't work as an
    applet, but at this point I was just randomly trying things in
    desperation.)

    What SHOULD I be doing?

    This is the code I'm using:

    try:
    # Java3D libraries
    from com.sun.j3d.uti ls.applet import MainFrame
    from com.sun.j3d.uti ls.behaviors.vp import *
    from com.sun.j3d.uti ls.image import *
    from com.sun.j3d.uti ls.universe import *
    from javax.media.j3d import *
    from javax.vecmath import *
    except:
    # Deal gracefully with Java3D not being installed
    class GearBox(Applet) :
    def init(self):
    self.add(Label( 'Java3D is not properly installed.', Label.CENTER))
    if __name__ == '__main__':
    # Not running as an applet
    print 'Java3D is not properly installed.'
    raise SystemExit
    else:
    # SyntaxError: 'return' outside function
    return


    My email is gcash AT cfl.rr.com, but please post your reply to the group.

    --
    I just like saying "chlorine pentafluoride"
Working...