在Java中,在序列化和反序列化之后,拖放停止工作

在Java中,在序列化和反序列化之后,拖放停止工作,java,serialization,drag-and-drop,deserialization,Java,Serialization,Drag And Drop,Deserialization,我正在开发一个Java应用程序。应用程序的框架结构如下所示。 首先我有一个JFrame,它包含一个面板。在面板中,我有许多JLists,在这些JLists之间,我实现了拖放功能。 现在,每次关闭应用程序之前,我都要保存UI的内容。为此,我正在使用序列化和反序列化,并且已经成功地实现了它。在反序列化之后,除了拖放之外,所有的东西都按预期工作。我没有收到任何错误,但是没有为Jlists建立拖放处理程序。我试图在拖放处理程序中放入一些print语句,但没有得到任何结果。有谁能告诉我可能的原因是什么 以

我正在开发一个Java应用程序。应用程序的框架结构如下所示。 首先我有一个JFrame,它包含一个面板。在面板中,我有许多JLists,在这些JLists之间,我实现了拖放功能。 现在,每次关闭应用程序之前,我都要保存UI的内容。为此,我正在使用序列化和反序列化,并且已经成功地实现了它。在反序列化之后,除了拖放之外,所有的东西都按预期工作。我没有收到任何错误,但是没有为Jlists建立拖放处理程序。我试图在拖放处理程序中放入一些print语句,但没有得到任何结果。有谁能告诉我可能的原因是什么

以下是我添加到每个Jlist组件中的DnDhandler的定义

$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
}

通常,在使用swing时,尽管各种组件都是可序列化的,但最好不要直接序列化它们。如果要持久化数据,请序列化数据,而不是swing元素本身。

我想,我首先会在代码中查找存在==而不是.equals()的位置。你可以帮自己制作一段最小的可编译的独立代码来复制bug。虽然我已经通过序列化内容和避免序列化UI组件解决了这个问题,但我还是会发布一个示例代码,它可以让问题变得清晰,从而可以识别实际的问题