2011-04-25 177 views
1

我想讓當前的JFrame變成存儲在內存中的JFrame。目前我正確地從內存中讀取JFrame,我可以讓它顯示,但所有的動作偵聽器都不起作用。分配一個JFrame到另一個JFrame

 gui.dispose(); 
     gui = savedGUI; 
     gui.setVisible(true); 

這似乎沒有正確設置當前的GUI(gui)到保存的版本(savedGUI)。我應該用gui而不是setVisible來調用另一種方法嗎?

在此先感謝!

+1

你爲什麼這樣做?總體目的是什麼,因爲我猜測有更好的方法來做你想做的事情,比如保存GUI的模型部分而不是視圖。 – 2011-04-25 15:47:57

+0

我所要做的就是從內存中加載一個GUI,就像它保存時一樣。 – Alex 2011-04-25 15:48:49

+2

您可以更好地保存應用程序模型的狀態,然後根據此狀態重新創建GUI。 – 2011-04-25 15:49:35

回答

1

的問題得到解決。

+1

爲什麼要序列化JFrame到內存? – camickr 2011-04-25 16:23:16

0

我真的不明白你在做什麼。你爲什麼認爲你需要用一個引用變量來引用GUI?

只要做到:

savedGui.setVisible(false); 

我們要再次這樣做顯示GUI:當我確信所有的ActionListeners實現Serializable接口

savedGui.setVisible(true); 
+0

將savedGUI設置爲可見將顯示GUI,但所有動作偵聽器都已被刪除,這對我的程序是必不可少的。這個人似乎有同樣的問題http://compgroups.net/comp.lang.java.gui/Serialization-on-JFrame-action-listener-not-being-restore – Alex 2011-04-25 16:08:02

+0

當你使你不會失去聽衆一個無形的桂。 – camickr 2011-04-25 16:23:49