<Swing Dev> Reinitializing an Applet
Pavel Porvatov
pavel.porvatov at oracle.com
Tue Jan 17 10:49:39 UTC 2012
Hi Johannes,
It's hard to imagine what methods (like mEmbed.dispose()) do. Could you
please provide a small test that can be run and which shows the problem?
Thanks, Pavel
> 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