[英]How to Save/Load data from TableView in JavaFX
我創建了一個TableView,它允許用戶向表中輸入信息。 我遇到的問題是,我需要保存用戶提供的信息,並在下次運行該程序時使用相同的信息重新加載相同的表。 我在這個問題上停留了一段時間,如果有人可以幫忙,我將不勝感激。 下面是我的ObservableList和我嘗試過的方法。 我將包括一張表格的屏幕截圖。 我從用戶按下按鈕時就調用了這些方法。
//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
Stats是否實現java.io.Serializable? 從ObjectOutputStream的API文檔中:
只有支持java.io.Serializable接口的對象才能寫入流。
從關於Serializable的文檔中:
通過實現java.io.Serializable接口的類,可以啟用類的可序列化性。 未實現此接口的類將不會對其狀態進行序列化或反序列化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.