Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #1370
| 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 |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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