GroupLayout上的NotSerializableException,但未使用GroupLayout

时间:2018-11-25 20:35:32

标签: java swing serialization

我正在编写一段代码,其中需要扩展JPanel,然后序列化其结果。但是,在尝试对其进行序列化时,出现此错误:

java.io.NotSerializableException: javax.swing.GroupLayout

我要序列化的对象的代码如下:

public class NewJPanel extends javax.swing.JPanel
{

    /**
     * Creates new form NewJPanel
     */
    public NewJPanel()
    {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents()
    {
    }// </editor-fold>                        


    // Variables declaration - do not modify                     
    // End of variables declaration                   
}

尝试序列化普通的,未扩展的JPanel可以,但是扩展的JPanel不能。如您所见,没有使用GroupLayout,而是面板默认为FlowLayout。即使明确设置它也不能防止这种情况。谁能告诉我为什么会这样,以及我如何解决或解决此问题?

1 个答案:

答案 0 :(得分:0)

结果发现,当我将JPannel的布局管理器放到JFrame中时,Netbeans上的JFrame表单生成器很喜欢将JPannel的布局管理器设置为GroupLayout,而不是将其保留为我在JPannel的代码中指定的布局。 >