按下关闭按钮时,在Java FX中关闭事件

时间:2016-07-14 09:57:19

标签: javafx-8

如果我按下右上方的[X]按钮直接关闭窗口,Java FX中是否存在任何事件处理程序。 在这种情况下哪些事件会起火? 到目前为止没有任何工作,setOnHiding也没有setOnCloseRequest()

请帮忙。

2 个答案:

答案 0 :(得分:2)

试试这个

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;

public class Main extends Application {

    @Override
    public void start(Stage stage) {
        Text text = new Text("!");
        text.setFont(new Font(40));
        VBox box = new VBox();
        box.getChildren().add(text);
        final Scene scene = new Scene(box,300, 250);
        scene.setFill(null);
        stage.setScene(scene);
        stage.show();
        stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
          public void handle(WindowEvent we) {
              System.out.println("Stage is closing");
          }
      });        
        stage.close();

    }

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

来源Stage close event : Stage « JavaFX « Java

答案 1 :(得分:-1)

如果您只想关闭整个应用程序,可以轻松使用

Platform.exit();

而不是

stage.close();

关闭整个申请。