我正在编写一段代码,其中需要扩展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。即使明确设置它也不能防止这种情况。谁能告诉我为什么会这样,以及我如何解决或解决此问题?
答案 0 :(得分:0)
结果发现,当我将JPannel的布局管理器放到JFrame中时,Netbeans上的JFrame表单生成器很喜欢将JPannel的布局管理器设置为GroupLayout,而不是将其保留为我在JPannel的代码中指定的布局。 >