среда, 17 сентября 2014 г.

Событие закрытия окна в Java FX


Слушать событие закрытия окна можно разными способами.

Событие закрытия окна: 

import javafx.event.EventHandler;

...

 @Override

    public void start(Stage stage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.show();

        stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
        public void handle(WindowEvent we) {
         System.out.println("Stage is closing");
         }
        });
    }

Предотвратить закрытие окна:

import javafx.event.EventHandler;

...

 @Override

    public void start(Stage stage) throws Exception {

        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));


        Scene scene = new Scene(root);

        stage.setScene(scene);

        stage.show();


        stage.setOnCloseRequest(new EventHandler<WindowEvent>(){

        @Override

         public void handle(WindowEvent event) {

          event.consume();

         }

        });

    }


Событие закрытия приложения:

public class WindowCloseTestApp extends Application {

   

    @Override

    public void start(Stage stage) throws Exception {

        Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));

        Scene scene = new Scene(root);

        stage.setScene(scene);

        stage.show();

    }


    public static void main(String[] args) {

        launch(args);

    }

    @Override

    public void stop(){

     //Здесь Вы можете прописать все действия при закрытии Вашего приложения.

    }

    @Override

    public void init(){

    //Инициализация любых данных, до включения основного потока Start в работу.

    //К теме не относится, но тоже полезно!

    }

}


Оф. документация: жизненный цикл приложений java.


Литература по JavaFX

1 комментарий: