사용자가 테이블에 정보를 입력 할 수있는 TableView를 만들었습니다. 내가 겪고있는 문제는 사용자가 제공 한 정보를 저장하고 다음에 프로그램을 실행할 때 동일한 정보를 사용하여 동일한 테이블을 다시로드해야한다는 것입니다. 나는 누군가가 내가 그것을 크게 감사 할 것을 도울 수 있으면, 이것에 관해 얼마간 붙어 있었다. 아래는 내 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
직렬화 가능한 TBH인지 확실하지 않습니다. 몇 가지 시도해 보았지만 작동하지 않았습니다. 다른 예에서 시도한 마지막 사항이었습니다. 어떤 이유로 든 Tableview 및 데이터를 저장 한 다음 다시로드하는 방법에 대한 온라인 예제를 찾을 수 없습니다. – user8284691