<Swing Dev> Reinitializing an Applet

Johannes.Lichtenberger Johannes.Lichtenberger at uni-konstanz.de
Tue Jan 17 10:28:52 UTC 2012


Hello,

I want to reinitialize an applet inside a JPanel (the view/class extends
JPanel). For example, I have the following method:

    /**
     * {@inheritDoc}
     */
    @Override
    public void refreshInit() {
        mDB = mNotifier.getGUI().getReadDB();
        boolean firstInit = mEmbed == null ? true : false;

        // Create instance of processing innerclass.
        if (!firstInit) {
            mEmbed.dispose();
        }
        mEmbed = new Embedded(this, mNotifier);
        if (firstInit) {
            add(mEmbed);
        } else {
            revalidate();
            repaint();
        }
        /*
         * Important to call this whenever embedding a PApplet.
         * It ensures that the animation thread is started and
         * that other internal variables are properly set.
         */
        mEmbed.init();
        mEmbed.refreshInit();
    }

mEmbed is an instance of a inner class which extends PApplet, the
processing core-class which itself extends Applet.

The thing is it doesn't reinitialize the new applet somehow properly and
the JMenuBar of the parent frame is greyed out but can be used nontheless.

The following code worked for extending JScrollPane:

    /**
     * {@inheritDoc}
     */
    @Override
    public void refreshInit() {
        mDB = mNotifier.getGUI().getReadDB();

        if (mEmbed != null) {
            mEmbed.mControl.getGUIInstance().mParent.dispose();
            mEmbed.mControl.getGUIInstance().resetGUI();
            mEmbed.mControl.resetControl();
            mEmbed.mEmbeddedView.resetEmbedded();
            mEmbed.mEmbeddedView = null;
            // mEmbed.dispose();
            mEmbed = null;
        }

        // Create instance of processing innerclass.
        mEmbed = new Embedded(this, mNotifier);
        setViewportView(mEmbed);
        /*
         * Important to call this whenever embedding a PApplet.
         * It ensures that the animation thread is started and
         * that other internal variables are properly set.
         */
        mEmbed.init();
        mEmbed.refreshInit();
    }

kind regards,
Johannes



More information about the swing-dev mailing list