Слушать событие закрытия окна можно разными способами.
Событие закрытия окна:
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
Спасибо очень помогло
ОтветитьУдалить