ともさんのHP >プロブラミング >JavaFX >アプリ終了時にダイアログを表示

アプリ終了時にダイアログを表示するサンプルプログラム

ウインドウ(Stage)右上の×ボタンを押してプログラムを終了するとき、 データを保存していない場合は閉じずにダイアログ(Alert)を表示して確認するサンプルプログラムを紹介します。

広告


JavaFXではsetOnCloseRequesを使う

JavaFXの場合 stageのsetOnCloseRequest内で記述する。
下の1行を追記すると、×ボタン楽天 を押しても終了できなくなります。

stage.setOnCloseRequest((WindowEvent event) -> { event.consume(); } );

データのの保存状況を示すフラグ(file)を作っておき、保存していればそのまま終了、未保存であればダイアログを開くには、下記のように記述します。

  stage.setOnCloseRequest((WindowEvent event) -> {
   //ファイルの状態で場合分け
   if( file == false ){
   Alert alert = new Alert( AlertType.CONFIRMATION , "データが保存されていません。終了しますか?" , ButtonType.YES , ButtonType.NO );
   ButtonType button  = alert.showAndWait().orElse( ButtonType.CANCEL );
   System.out.println( button.getText() );
   //はいボタンが押されたら終了、いいえなら終了せずに戻る
   if(
    button.getText().equals("はい") ){ System.exit(0); }
   else{
    event.consume();
   }
  }else{ System.exit(0); }
 });


サンプルプログラム

JavaFXサンプル動画

下のプログラムを実行画面が上の動画です。 ×ボタンをクリックするとファイルの状態によってダイアログを表示させ、終了前の確認ダイアログを表示させています。
選択ボタンがいいえなら終了せずに元に戻り、はいなら終了します。

package tomojavalib.fx;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.*;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;

public class EndTest extends Application {
boolean file = false;

 public static void main(String[] args) {
  Application.launch(args);
 }

 @Override
 public void start(Stage stage) throws Exception {
  BorderPane pane = new BorderPane();
  Scene scene = new Scene(pane, 320, 240);

  stage.setOnCloseRequest((WindowEvent event) -> {
   //ファイルの状態で場合分け
   if( file == false ){
   Alert alert = new Alert( AlertType.CONFIRMATION , "データが保存されていません。終了しますか?" , ButtonType.YES , ButtonType.NO );
   ButtonType button  = alert.showAndWait().orElse( ButtonType.CANCEL );
   System.out.println( button.getText() );
   //はいボタンが押されたら終了、いいえなら終了せずに戻る
   if(
    button.getText().equals("はい") ){ System.exit(0); }
   else{
    event.consume();
   }
  }else{ System.exit(0); }
 });

  stage.setScene(scene);
  stage.show();
 }
}


最終更新日: 2017-10-31 07:02:57

ともさんのHP >プロブラミング >JavaFX >アプリ終了時にダイアログを表示

このエントリーをはてなブックマークに追加
広告
おすすめ記事
新着ページ

JavaFXでPopupMenu  
メンズパンツとジーンズの型紙ダウンロード  
柿の木、剪定前後の比較写真  
ダイアログ  
メニューバー  
原型型紙のダウンロード  
3D-CADでカバンの型紙  
和風コートの作り方  
ボタンやラベルの修飾方法  
アイコンの差し替え  
男性用原型製図のしかた  

私の他のサイト

ともさんの箱庭(ブログ)
家庭菜園
3D-CAD
洋裁CAD

いいねなど

 RSS 
PageSpeedInsights
html5チェック

Author: Tomoyuki Ito

このサイトの文章・写真の無断転載を禁じます