2011-12-19 70 views
0

我正在開發Java應用程序。應用程序的框架結構如下。 首先我有包含面板的JFrame。在面板中,我有許多JLists,並在Jlists之間實現了拖放功能。 現在每次關閉應用程序之前,我想保存UI的內容。爲此我正在使用序列化和反序列化,並且我已經成功實現了它。反序列化之後,除拖放之外,所有事情都按預期工作。我沒有收到任何錯誤,但沒有爲Jlists建立拖放處理程序。我試圖把一些打印語句放在拖放處理程序中,並沒有得到任何結果。任何人都可以告訴我可能是什麼原因嗎?拖放在Java中的序列化和反序列化後停止工作

以下是我已經加入到每一個JList組件

$private ListTransferHandler dndHandler = new ListTransferHandler(); 

和我ListTranferHandler類像

$public class ListTransferHandler extends TransferHandler implements Serializable{ 

private static final long serialVersionUID = -3484014856820532284L; 
//followed by all methods 
    // canImport 
    // createtranferable 
    // getSourceActions 
    // importData 
    //exportDone 
} 
+0

有人猜測,我首先會在代碼中尋找有==而不是.equals()的地方。你可以自己動手做一個可以複製bug的最小的可編譯的獨立代碼。人們可以用這些信息幫助你更好。 – 2011-12-23 21:04:14

+0

儘管我已經通過序列化內容並避免序列化UI組件來解決問題,但我仍會發布示例代碼,它可以使問題變得清晰,以便可以確定實際問題 – 2012-01-09 06:40:43

回答

0

一般來說,DnDhandler的定義,擺動工作時,雖然各種組件可串行化,最好是而不是直接序列化它們。如果你想堅持數據,序列化數據,而不是擺動元素本身。