2017-12-23 70 views
0

ユーザーがテーブルに情報を入力できるようにするTableViewを作成しました。私が抱えている問題は、ユーザーが提供した情報を保存し、次回のプログラム実行時に同じ情報で同じテーブルをリロードする必要があることです。私はこれにしばらくお待ちしております。もし誰かが私が大いに感謝するのを助けることができれば。 BELOWは私のObservableListと私が試したメソッドです。私はテーブルの外観をスクリーンキャプチャします。ユーザーがボタンを押してからメソッドを呼び出しました。JavaFXのTableViewからデータを保存/ロードする方法

//get Trail info 
public static ObservableList<Stats> getTrailInfo(){ 
    ObservableList<Stats> trailInfo = FXCollections.observableArrayList(); 
    trailInfo.add(new Stats(trailList, timesHiked, daysHiked, hoursHiked, minutesHiked, milesHiked)); 

    return trailInfo; 
} 


//I ATTEMPTED TO SAVE AND READ IT BACK USING THESE METHODS, BUT I DID NOT HAVE ANY LUCK 
private static void write(ObservableList<Stats> stats) { 
    try { 

     // write object to file 
     OutputStream out = new FileOutputStream("TrailName.txt");   
     ObjectOutputStream oos = new ObjectOutputStream(out); 
     oos.writeObject(new ArrayList<Stats>(stats)); 
     oos.close(); 


    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

} 

static ObservableList<Stats> pull() { 
    try { 
     InputStream inputstream = new FileInputStream("TrailName.txt");   
     ObjectInputStream ois = new ObjectInputStream(inputstream); 
     List<Stats> list = (List<Stats>) ois.readObject() ; 

     return FXCollections.observableList(list); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return FXCollections.emptyObservableList(); 
} 
[TableView ScreenShot][1] 


[1]: https://i.stack.imgur.com/m0nyg.png 

答えて

0

Statsはjava.io.Serializableを実装していますか? ObjectOutputStreamのAPIドキュメントから:

java.io.Serializableインターフェイスをサポートするオブジェクトのみをストリームに書き込むことができます。直列化のドキュメントから

:クラスの

直列化は、java.io.Serializableインタフェースを実装するクラスによって有効になります。このインタフェースを実装していないクラスは、状態がシリアライズまたはデシリアライズされません。

+0

シリアル化可能なTBHであるかどうかはわかりません。私はいくつかのことを試してみましたが、うまくいきませんでした。別の例で試した最後のことでした。何らかの理由で、私はどのようにTableviewとそのデータを保存し、それをリロードするかに関するオンラインの例を見つけることができません。 – user8284691

関連する問題