我想使用 JfileChooser 选择一个文件并将对象写入所选文件或从所选文件中读取对象。我已经序列化了我的课程,但我不知道如何序列化这个MetalFileChooserUI?还是我需要这样做?非常感谢你。
有人可以帮我找到解决方案吗?谢谢你。我的错误信息:
java.io.NotSerializableException: java.io.ObjectOutputStream.writeObject0(Unknown Source) 处的 javax.swing.plaf.metal.MetalFileChooserUI java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) 处 java.io.ObjectOutputStream.writeSerialData(Unknown Source) ) 在 java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) 在 java.io.ObjectOutputStream.writeObject0(Unknown Source) 在 java.io.ObjectOutputStream.writeObject(Unknown Source) 在 javax.swing.ArrayTable.writeArrayTable(Unknown Source) 在javax.swing.ActionMap.writeObject(Unknown Source) at sun.reflect.GeneratedMethodAccessor11.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at java.io.ObjectStreamClass。在 java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) 在 java.io.ObjectOutputStream.writeObject0(Unknown Source) 在 java.io.ObjectOutputStream.defaultWriteFields( Unknown Source) at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) at javax.swing.JComponent.writeObject(Unknown Source) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source ) 在 java.io.ObjectOutputStream.writeSerialData(Unknown Source) 在 java.io.ObjectOutputStream 的 java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) 在 java.lang.reflect.Method.invoke(Unknown Source)。writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject( Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) at javax.swing.JList.writeObject(Unknown Source ) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 在 java.lang.reflect.Method.invoke(Unknown Source) ) 在 java.io。ObjectStreamClass.invokeWriteObject(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream。 java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.defaultWriteFields( Unknown Source) 在 java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) 在 java.awt.Window.writeObject(Unknown Source) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl。在 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 在 java.lang.reflect.Method.invoke(Unknown Source) 在 java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) 在 java.io.ObjectOutputStream.invoke(Unknown Source)。 writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject(Unknown Source) at java.awt.Window.writeObject(未知源)在 sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(未知源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)在 java.lang.reflect.Method.invoke(未知来源)在 java.io.ObjectStreamClass。invokeWriteObject(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject( Unknown Source) at ver_2.sudoku_GUI.actionPerformed(sudoku_GUI.java:90) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed (未知源)在 javax.swing.DefaultButtonModel.setPressed(未知源) 在 javax.swing.AbstractButton.doClick(未知源) 在 javax.swing.plaf.basic.BasicMenuItemUI.doClick(未知源) 在 javax.swing.plaf .basic.BasicMenuItemUI$Handler。mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent( Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) ) 在 java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 在 java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 在 java.awt.Container.dispatchEventImpl(Unknown Source) 在 java.awt.Window.dispatchEventImpl(Unknown Source) 在java.awt.组件。dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy( Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 的 pumpEvents(Unknown Source)