2017-12-23 9 views
0

사용자가 테이블에 정보를 입력 할 수있는 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 

답변

0

통계는 java.io.Serializable을 구현합니까? ObjectOutputStream의 API 문서에서 :

java.io.Serializable 인터페이스를 지원하는 객체 만 스트림에 쓸 수 있습니다. 직렬화의 문서에서

: 클래스의

직렬화 가능성은, java.io.Serializable 인터페이스를 구현 한 클래스에 의해 유효하게됩니다. 이 인터페이스를 구현하지 않는 클래스는, 자신의 상태가 직렬화 또는 직렬화 복원되지 않습니다.

+0

직렬화 가능한 TBH인지 확실하지 않습니다. 몇 가지 시도해 보았지만 작동하지 않았습니다. 다른 예에서 시도한 마지막 사항이었습니다. 어떤 이유로 든 Tableview 및 데이터를 저장 한 다음 다시로드하는 방법에 대한 온라인 예제를 찾을 수 없습니다. – user8284691

관련 문제