2017-04-17 16 views
1

なぜパネルが読み込まれないのですか?それが正しく保存されているかどうかわかりません。GUIからバイナリファイルを読み込む

public void saveParks(JPanel parkingPanel) throws IOException 
    { 
     //save parkingPanel JPanel that contains the two car parks 
     ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("saveParkPanel.dat")); 

     output.writeObject(parkingPanel); 
     System.out.println("saved"); 
     output.close(); 
    } 

    public void loadParks() throws FileNotFoundException, IOException, ClassNotFoundException 
    { 

     ObjectInputStream input = new ObjectInputStream(new FileInputStream("saveParkPanel.dat")); 

     JPanel parkingPanel = (JPanel)input.readObject(); 
     System.out.println("loaded"); 
    } 

} 

答えて

0

なぜパネルの負荷ではありません。

JWindowまたはJFrameに追加しないためです。
以前にシリアライズしたJPanelインスタンスをロードするだけでは表示できません。

JPanel parkingPanel = (JPanel)input.readObject(); 
JFrame frame = new JFrame(); 
frame.setVisible(true); 
frame.add(parkingPanel); 

私はそれがどちらか正しく保存だ場合伝えることができません:

のようなものを試してみてください。

シリアル化中にNotSerializableExceptionが表示されていない場合は、それは良い兆候です。

+0

クラスはJPanelコンストラクタであり、JPanelを継承します。 – Nebula

+0

はい、表示するには、JFrameなどの 'RootPaneContainer'に追加する必要があります。 – davidxxx

+0

それを試して、私は誤ったsym型を取得しています:CarPark.AddVehiclePanel.loadParks どこで試してみて、メソッドを呼び出します。それは私がJFrameの引数が必要だと言ったが、私はコースフレームのloadParks(フレーム)を入れてスコープの範囲外です。 – Nebula

関連する問題