Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #1370

Re: Serialization on JFra

From "Bart Cremers" <bart.cremers@THRWHITE.remove-dii-this>
Subject Re: Serialization on JFra
Message-ID <1175494281.520204.285670@y66g2000hsf.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
References <1175482415.407735.281950@q75g2000hsh.googlegroups.com>
Date 2011-04-27 15:32 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
On Apr 2, 4:53 am, yancheng.ch...@gmail.com wrote:
> hello all,
>
> i try to save my whole application, by performing serialization on my
> JFrame, hoping the the GUI display, internal data can be restore back
> to previous user setting.
>
> however, i found that, after restoring, the main frame still can be
> seen. however, all the action listener not longer work (i.e., i key in
> a value in a text field and press enter, nothing happen).
>
> my action listner is installed in the JMainFrame constructor.
>
> i was wondering is it because during serialization loading, the
> JMainFrame constructor is not being called? isn't the actione listener
> itself should also being serialization loaded?
>
> here is the snippet of my code. my serialization saving is done during
> window closing, the my serialization loading (restoring) is done at
> the start of the main function.
>
> thanks
>
>     private void formWindowClosing(java.awt.event.WindowEvent evt)
> {
> // TODO add your handling code here:
>         saveApplication();
> .......
>
>     private boolean saveApplication() {
>         try {
>             FileOutputStream fos = new
> FileOutputStream("application.ser");
>             ObjectOutputStream out = new ObjectOutputStream(fos);
>             out.writeObject(this.mainFrame);
>             out.close();
>         }
>         catch(IOException exp) {
>             exp.printStackTrace();
>             return false;
>         }
>
>         return true;
>     }
>
>     private boolean saveApplication() {
>         try {
>             FileOutputStream fos = new
> FileOutputStream("application.ser");
>             ObjectOutputStream out = new ObjectOutputStream(fos);
>             out.writeObject(this.mainFrame);
>             out.close();
>         }
>         catch(IOException exp) {
>             exp.printStackTrace();
>             return false;
>         }
>
>         return true;
>     }
>
>     public static void main(String args[]) {
>         java.awt.EventQueue.invokeLater(new Runnable() {
>             public void run() {
>                 if((mainFrame = MainFrame.loadApplication()) != null)
> {
>                     mainFrame.setVisible(true);
>                     System.out.println("success serialization
> loading");
>                 }
>                 else {
>                     mainFrame = new MainFrame();
>                     mainFrame.setExtendedState(Frame.MAXIMIZED_BOTH);
>
> mainFrame.setVisible(true);
>                 }
>             }
>         });
>     }

As far as I remember Listeners are transient by default, but some
special handling on Component level ensures that listeners can be
serialized if and only if they are Serializable themselves.

Regards,

Bart

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Serialization on JFrame - "yancheng.cheok" <yancheng.cheok@THRWHITE.remove-dii-this> - 2011-04-27 15:32 +0000
  Re: Serialization on JFra "Andrew Thompson via JavaK" <andrew.thompson.via.javak@THRWHITE.remove-dii-this> - 2011-04-27 15:32 +0000
  Re: Serialization on JFra "Bart Cremers" <bart.cremers@THRWHITE.remove-dii-this> - 2011-04-27 15:32 +0000
  Re: Serialization on JFra "Tom Hawtin" <tom.hawtin@THRWHITE.remove-dii-this> - 2011-04-27 15:32 +0000

csiph-web