2017-02-26 8 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を使用して実装が容易でなければなりません:(なし初期遅延)節約の間に1分の遅延でデータを保存するための

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

  • をデータへのアクセスを同期する:あなたはいくつかの世話をする必要があり、このアプローチを使用していること

    は注意してください。

  • ファイルへの同時アクセスを防止します。
  • shutdownが、JavaFXプラットフォームが終了するとき(またはその前に)呼び出されることを確認します。
+0

お返事ありがとうございます。私はそれを試み、あなたに知らせるでしょう。 –

関連する問題