21xrx.com
2024-09-20 06:04:54 Friday
登录
文章检索 我的文章 写文章
掌握Java与JavaFX中关闭窗口的方法
2023-06-16 15:57:07 深夜i     --     --
Java JFrame JavaFX 关闭窗口

Java和JavaFX是两个常用于开发跨平台应用程序的编程语言。在设计界面时,经常需要关闭窗口。那么,在Java和JavaFX中如何实现关闭窗口呢?

对于Java,我们通常使用JFrame来创建窗口界面。在JFrame中,可以使用WindowAdapter和WindowListener两个接口实现关闭窗口的操作。具体实现方法如下:


public class MyJFrame extends JFrame {

  public MyJFrame() {

    setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

    addWindowListener(new WindowAdapter() {

      public void windowClosing(WindowEvent e) {

        int i = JOptionPane.showConfirmDialog(null, "确定要退出吗?", "退出", JOptionPane.YES_NO_OPTION);

        if (i == JOptionPane.YES_OPTION) {

          System.exit(0);

        }

      }

    });

  }

}

在这个实现中,我们设置了setDefaultCloseOperation方法,该方法接收的参数表示关闭窗口时的操作。在本实例中,使用JFrame.DO_NOTHING_ON_CLOSE表示关闭窗口时不执行任何操作,而是通过添加WindowAdapter实现关闭的方法。

和Java不同,JavaFX中的窗口对象是Stage。它有一个setOnCloseRequest方法可以实现关闭窗口的操作。具体实现方法如下:


public class MyJavaFX extends Application {

  public void start(Stage primaryStage) throws Exception {

    primaryStage.setOnCloseRequest(new EventHandler () {

      public void handle(WindowEvent event) {

        Alert alert = new Alert(Alert.AlertType.CONFIRMATION);

        alert.setTitle("退出");

        alert.setHeaderText("确定要退出吗?");

        Optional result = alert.showAndWait();

        if (result.get() == ButtonType.OK) {

          System.exit(0);

        } else {

          event.consume();

        }

      }

    });

  }

}

在这个实现中,我们使用了Alert类来提示用户是否确认退出。如果选择确定,则调用System.exit(0)方法退出程序。如果选择取消,则调用event.consume()方法取消关闭窗口的操作。

可以看到,Java和JavaFX中实现关闭窗口的方法略有不同。掌握它们,可以让我们设计的应用程序更加美观、流畅、稳定。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复