2017-02-26 1 views
0

저장 한 파일을 저장하고 여는 것을 포함하여 프로젝트 관리를위한 응용 프로그램을 만들고 있습니다. 내 응용 프로그램이 원활하게 실행되고 있지만 시간이 지나면 데이터를 저장할 수 있도록 응용 프로그램에 다른 기능을 추가하려고합니다.javafx로 자동 저장 기능 적용

다음은 저장 및 저장 기능을위한 코드입니다.

@FXML 
private void handleSave() { 
    File userstoryFile = mainApp.getUserStoryFilePath(); 
    if (userstoryFile != null) { 
     mainApp.saveUserStoryDataToFile(userstoryFile); 
    } else { 
     handleSaveAs(); 
    } 
} 

/** 
* Opens a FileChooser to let the user select a file to save to. 
*/ 
@FXML 
private void handleSaveAs() { 
    FileChooser fileChooser = new FileChooser(); 

    // Set extension filter 
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter(
      "XML files (*.xml)", "*.xml"); 
    fileChooser.getExtensionFilters().add(extFilter); 

    // Show save file dialog 
    File file = fileChooser.showSaveDialog(mainApp.getPrimaryStage()); 

    if (file != null) { 
     // Make sure it has the correct extension 
     if (!file.getPath().endsWith(".xml")) { 
      file = new File(file.getPath() + ".xml"); 
     } 
     mainApp.saveUserStoryDataToFile(file); 
    } 
} 

(타이머 기능 사용) 여기에 자동 저장 기능을 추가 할 수 있습니까? 그렇다면 어떻게? 이 같은

click here to get complete application code

답변

0

뭔가 ScheduledExecutorService를 사용하여 쉽게 구현할 수 있어야한다 :

ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); 
executorService.scheduleWithFixedDelay(() -> mainApp.saveUserStoryDataToFile(file), 0, 1, TimeUnit.MINUTES); 

저장 사이에 1 분 지연 (NO 초기 지연)에 데이터를 저장하십시오.

주 당신이 몇 가지 처리를 취할 필요가이 방법을 사용 : 데이터에

  • 동기화 액세스를.
  • 파일에 대한 동시 액세스를 금지합니다.
  • JavaFX 플랫폼이 종료 될 때 (또는 그 전에) shutdown이 호출되는지 확인하십시오.
+0

답변 해 주셔서 감사합니다. 나는 그것을 시도하고 알려 드리겠습니다. –