2011-01-22 1 views
0

JfileChooserを使用して、ファイルとwriteObjectを選択したファイルまたはreadObjectを選択するファイルから選択します。私はクラスをシリアライズしましたが、これをシリアル化する方法がわかりませんMetalFileChooserUI?または私はそれを行う必要がありますか?どうもありがとうございました。JFileChooserの問題

smiliar error message to mine

誰かがそれへの解決策を見つけるために私を助けることができますか?ありがとうございました。 私のエラーメッセージ:

java.io.NotSerializableException:javax.swing.plaf.metal.MetalFileChooserUI java.io.ObjectOutputStream.writeObject0(不明なソース) でjava.io.ObjectOutputStream.defaultWriteFieldsで(不明(不明なソース) (不明なソース) at java.io.ObjectOutputStream.writeObject (不明なソース) at javax.swing.ArrayTable.writeArrayTable(不明なソース) at j java.lang.reflect.Method.invokeでavax.swing.ActionMap.writeObject(不明なソース)sun.reflect.GeneratedMethodAccessor11.invokeで (不明なソース)sun.reflect.DelegatingMethodAccessorImpl.invokeで (不明なソース) (不明java.io.ObjectOutputStream.writeObject0でjava.io.ObjectOutputStream.writeOrdinaryObject(不明なソース) でjava.io.ObjectOutputStream.writeSerialData(不明なソース) でjava.io.ObjectStreamClass.invokeWriteObject(不明なソース) で出所) (不明な情報源) at javax.swing.JComponent.writeObject(不明な情報源) (不明な情報源) で、 を返します。 sun.reflect.GeneratedMethodAccessor10.invoke(不明なソース)sun.reflect.DelegatingMethodAccessorImpl.invokeで (不明なソース)java.lang.reflect.Method.invokeで (不明なソース)java.io.ObjectStreamClass.invokeWriteObjectで でjava.io.ObjectOutputStreamのでjava.io.ObjectOutputStream.writeObject0(不明なソース) でjava.io.ObjectOutputStream.writeOrdinaryObject(不明なソース) でjava.io.ObjectOutputStream.writeSerialData(不明なソース) で(不明なソース) .DefaultWriteFields(不明なソース) at java.io.ObjectOutputStream.writeSerialData(不明なソース) at java.io.ObjectOutputStream.writeOrdinaryObject(不明なソース) at java.io.Object OutputStream.writeObject0(不明なソース) at java.io.ObjectOutputStream.defaultWriteFields(不明なソース) at java.io.ObjectOutputStream.defaultWriteObject(不明なソース) at javax.swing.JList.writeObject(不明なソース) at sun。 java.lang.reflect.Method.invokeでsun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース) でsun.reflect.NativeMethodAccessorImpl.invoke(不明なソース) でreflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) (不明なソース) at java.io.ObjectStreamClass.invokeWriteObject(不明なソース) at java.io.ObjectOutputStream.writeSerialData(不明なソース) at java.io.ObjectOutputStream.writeOrdinaryObject(不明なソース) at java.io.ObjectOutputStream.writeObject0(不明なソース) at java.io.ObjectOutputStream。java.io.でjava.io.ObjectOutputStream.writeObject0(不明なソース) でjava.io.ObjectOutputStream.writeOrdinaryObject(不明なソース) でjava.io.ObjectOutputStream.writeSerialData(不明なソース) でdefaultWriteFields(不明なソース) ObjectOutputStream.defaultWriteFields(不明なソース)sun.reflect.NativeMethodAccessorImpl.invoke0でjava.awt.Window.writeObject(不明なソース) でjava.io.ObjectOutputStream.defaultWriteObject(不明なソース) (ネイティブメソッド)日で で 。インフォメーション: at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source)(不明なソース) at java.io.ObjectOutputStream.writeObject0(不明なソース) (不明なソース) (不明なソース) sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でjava.awt.Window.writeObject(不明なソース) でjava.io.ObjectOutputStream.writeObject(不明なソース) で出所) sun.reflect.DelegatingMethodAccessorImpl.invoke(不明なソース)java.lang.reflect.Method.invokeで (不明なソース)java.io.ObjectStreamClass.invokeWriteObjectで (不明なソース)01時(不明なソース) (不明なソース) at java.io.ObjectOutputStream.writeObject0(不明なソース) at java.io.ObjectOutputStream.writeObject(不明なソース) javax.swing.AbstractButton.fireActionPerformed(不明なソースでver_2.sudoku_GUI.actionPerformed(sudoku_GUI.java:90) で出所) )javax.swing.AbstractButton $ Handler.actionPerformedで (不明なソース) するjavax.swingで。 DefaultButtonModel.fireActionPerformed(Unknown Source) (javax.swing.DefaultButtonModel.setPressed(Unknown Source)) (javax.swing.AbstractButton.doClick)(不明なソース) (javax.swing.pl) (不明な情報源) のjava.awt.Component.processMouseEvent(不明な情報源) (javax.swing.JComponent) このスレッドに返信します...返信このスレッドに返信します...返信(不明なソース) のjava.awt.Component.dispatchEventImpl(不明なソース) at java.awt.Container.processEvent(不明なソース) での のjava.awt.Component.processEvent(不明なソース)の .Container.dispatchEventImpl(不明なソース) at java.awt.Component.dispatchEvent(不明なソース) at java.awt.LightweightDispatcher.retargetMouseEvent(不明なソース) at java.awt.LightweightDispatcher.processMouseEvent(不明なソース)(不明なソース) at java.awt.Component.dispatchEvent(不明なソース)の を表示するには at java.awt.Component.dispatchEvent(不明なソース) java.awt.EventDispatchThread.pumpEventsForHierarchyでjava.awt.EventDispatchThread.pumpEventsForFilter(不明なソース) でjava.awt.EventQueue.dispatchEvent(不明なソース)java.awt.EventDispatchThread.pumpOneEventForFiltersで (不明なソース) で出所) (不明なソース) at java.awt.EventDispatchThread.pumpEvents(不明なソース) at java.awt.EventDispatchThread.pumpEvents(不明なソース) at java.awt.EventDispatchThread。実行(不明なソース)あなたが実際のJFileChooserをシリアル化する必要はありませんが、あなたは、単にその参照transientので、シリアル化プロセスがする作る(あなたはシリアライズする必要があることを)あなたのいくつかのクラスでは、それへの参照を持っている場合は

+0

正確に何をシリアル化しますか? JFileChooserオブジェクト自体? –

+0

ありがとうございました。私は問題をはっきりと記述しなかったかもしれません。私は保存したいファイルを取得するためにJFileChooserを使い、ObjectOutputStreamを使って、選択したファイルにシリアライズしたクラスを書き込みます。 ObjectOutputStreamがJFilechooserと何の関係もないので、エラーが発生します。なぜそれが起こっているのか不思議です。私はまずトランジェント**を試してみたいと思います。 Costi Ciudatuに感謝します。 :) – wgx731

答えて

2

単純に無視してください。

2

なぜこのような意味でファイル選択機能をシリアル化したいのですか?私はあなたの最善の策は、プログラムのGUI部分を直列化するのではなく、(MVC構造を前提にして)モデルに保持されているデータであると思っています。

関連する問題