views:

986

answers:

2

I created a desktop application with Swing Application Framework, now how can I convert it to an applet? The main class extends SingleFrameApplication.

EDITED: This is the starting class, used NetBeans GUI builder:

public class PhotoApp extends SingleFrameApplication {

    /**
     * At startup create and show the main frame of the application.
     */
    @Override protected void startup() {
        show(new PhotoView(this));
    }

    /**
     * This method is to initialize the specified window by injecting resources.
     * Windows shown in our application come fully initialized from the GUI
     * builder, so this additional configuration is not needed.
     */
    @Override protected void configureWindow(java.awt.Window root) {
    }

    /**
     * A convenient static getter for the application instance.
     * @return the instance of PhotoUploaderApp
     */
    public static PhotoApp getApplication() {
        return Application.getInstance(PhotoApp.class);
    }

    /**
     * Main method launching the application.
     */
    public static void main(String[] args) {
        launch(PhotoApp.class, args);
    }
}
+2  A: 

Simplest thing is just to make a new outer class inheriting from JApplet, and instantiate the actual frame inside it.

Update

Found a tutorial online that could help.

Charlie Martin
I have updated the question and posted my code. How would I instantiate it from a JApplet?
fromvega
Chris below has the basics. change 'extends SingelFrameApplication' to 'extends JApplet', and since you don't have a ctor you'll have to write an init method from scratch. Besides the tutorial I linked, have a look at http://www.faqs.org/docs/javap/c6/s1.html
Charlie Martin
Isn't this tutorial Applet -> Application instead of Application -> Applet?
M. Joanis
+1  A: 

The quick and dirty way:

Drop extends SingleFrameApplication. Add extends JApplet.

replace the constructor with public void init() leaving the body as is.

Create an HTML page to hold it. and give it a whirl.

There will likely be some scoping issues, but you should be able to fix those fairly easily.

chris
It doesn't work. I think it's not that simple because I have no constructor, I edited the question so you can see the code I have.
fromvega