首页 > 其他分享 >如何使用默认提示框Alert

如何使用默认提示框Alert

时间:2023-06-12 16:55:16浏览次数:28  
标签:AlertType javafx 默认 alert Alert new import 提示框

如何使用默认提示框Alert

Alert 是 JavaFX 自带的一个窗口,提供了一些默认的样式供我们选择:

  • 提示框
  • 确认框
  • 错误框

默认情况下,当打开一个 Alert 时,其他的窗口无法进行操作。

我们还可以获取对 Alert 窗口操作的结果。

效果展示

示例代码

import java.util.Optional;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class AlertExample extends Application
{
    @Override
    public void start(Stage window) throws Exception
    {
        VBox root = new VBox();

        Button informationButton = new Button("Information Alert");
        informationButton.setOnAction(e -> {
            Alert alert = new Alert(AlertType.INFORMATION);
            alert.setTitle("Hi");
            alert.setHeaderText(null);
            alert.setContentText("Hi there");
            alert.showAndWait();
        });

        Button confirmButton = new Button("Confirm Alert");
        confirmButton.setOnAction(e -> {
            Alert alert = new Alert(AlertType.CONFIRMATION);
            alert.setTitle("Confirm");
            alert.setHeaderText(null);
            alert.setContentText("Are you sure?");
            Optional<ButtonType> option = alert.showAndWait();
            System.out.println(option.get());
            if (option.get().equals(ButtonType.OK))
            {
                System.out.println("Choose OK");
            }
            else if (option.get().equals(ButtonType.CANCEL))
            {
                System.out.println("Choose CANCEL");
            }
        });

        Button errorButton = new Button("Error Alert");
        errorButton.setOnAction(e -> {
            Alert alert = new Alert(AlertType.ERROR);
            alert.setTitle("Error");
            alert.setHeaderText(null);
            alert.setContentText("Your program has got an error");
            alert.showAndWait();
        });

        root.getChildren().addAll(informationButton, confirmButton, errorButton);

        Scene scene = new Scene(root, 400, 300);

        window.setScene(scene);
        window.setTitle(this.getClass().getSimpleName());
        window.show();
    }

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

代码说明

这段代码创建了三个按钮,每个按钮创建一个不同的 Alert ,分别是:

  • 提示框,Alert 类型是 AlertType.INFORMATION
  • 确认框,Alert 类型是 AlertType.CONFIRMATION
  • 错误框,Alert 类型是 AlertType.ERROR

创建好 Alert 后,我们为其设置 Title,Header,Content,我们把 Header 设置成 null ,因为一般我们不需要这个内容。

接着调用 alert.showAndWait 方法打开 Alert 窗口。

确认框中,我们还接收了 showAndWait 的返回值,返回类型是 Optional<ButtonType> option ,我们通过 get() 方法拿到存储在里面的 ButtonType 对象,如果点击了确认,那么此对象为 ButtonType.OK ,如果是取消,此对象为 ButtonType.CANCEL 。这样我们就能知道用户的选择了。

总结

使用Alert的简洁步骤如下:

  1. 创建Alert对象,指定AlertType类型,如INFORMATION(信息提示)、CONFIRMATION(确认)或ERROR(错误)。
  2. 设置Alert的标题、头部和内容。通常将头部设置为null。
  3. 调用alert.showAndWait()方法显示Alert窗口。
  4. 对于确认框,可以使用showAndWait()方法返回的Optional<ButtonType>对象获取用户的选择结果。通过get()方法获取ButtonType,判断用户是点击了确认还是取消按钮。

标签:AlertType,javafx,默认,alert,Alert,new,import,提示框
From: https://www.cnblogs.com/javafx-howto/p/17475483.html

相关文章

  • VBA中为数组设置默认下限
    数组默认下限下标是0如果想设置默认下限下标是1则在模块中出现一次且必须位于包含维度的数组声明前面:OptionBase1......
  • 使用阿里云Rocky Linux镜像源替换默认源
    (1)打开终端,备份默认源(2)更换阿里云镜像源执行以下命令替换默认源sed-e's|^mirrorlist=|#mirrorlist=|g'\-e's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g'\-i.bak\/etc/yum.repos.d/Rocky-*.repo......
  • mac下安装Mysql5.7遇到默认密码的大坑
    哈哈,当时我装5.7也遇到过这样的情况 安装的过程很简单,就直接到官方下mysqldmg,一路下一步就可以装完.. MacMysqldmg下载地址,http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.10-osx10.10-x86_64.dmg但是带来的问题是,默认密码不为空…mysql-uroot-p登陆不进去…直接......
  • 启动word时总是弹出Microsoft Visual Basic运行错误提示框,解决方法如下
    1、启动word,找到加载项名称为:NEWebWordAddin.dotm,类型应该时是模版版,看其所在位置,我的电脑显示位置是:C:\Users\18308\AppData\Local\Packages\Microsoft.Office.Desktop_8wekyb3d8bbwe\LocalCache\Roaming\Microsoft\Word2、为保持原有数据   进入该位置,将STARTUP改成bak_......
  • mysql运行sql文件时,timestamp默认值出错问题解决
    出现了---Invaliddefaultvaluefor'reward_time' 直接打开sql文件,将字段reward_time类型值替换成NULL即可 ......
  • jmeter003:(HTTP请求默认值)元件
    HTTP请求默认值作用:当有多个请求的协议、ip、端口号、路径、内容编码、参数、消息数据体是一样时,可以使用http请求默认来代替多个请求值添加路径:线程组>配置元件>HTTP请求默认值使用方法:如下图,(请求1、请求2、请求3)添加了(HTTP请求默认值)之后,请求数据取的都是(HTTP请求默认值)里面......
  • 3、修改avd模拟器的默认路径
     1、由于avd的默认路径在c盘,如图所示的位置 2、现在将位置进行更改,先在D盘创建文件夹,再将c盘文件夹的内容移动过去  3、配置环境变量 4、修改配置文件  ......
  • Shellcode Execution in a Local Process with QueueUserAPC and NtTestAlert(nim学习
    ShellcodeExecutioninaLocalProcesswithQueueUserAPCandNtTestAlertAPC队列异步过程调用(APC)队列是一个与线程关联的队列,用于存储要在该线程上下文中异步执行的函数。操作系统内核会跟踪每个线程的APC队列,并在适当的时机触发队列中挂起的函数。APC队列通常用于实现线......
  • django admin 后台手动添加数据,设置表单默认自动填充默认值,get_form函数
    需求admin添加数据,表单某字段默认填充值。例如电话号默认填充前缀:+86 效果 实现方法:https://www.codenong.com/529890/在数据库表模型对应的admin后台的管理文件admin.py 内对应Admin管理类配置get_form函数@admin.register(models.UserInfo)classUserInfoAdmi......
  • 修改node默认的全局模块安装global路径和cache路径
    1、安装node后,全局模块的global路径和cache路径会默认的安装在C:\Users\{{账号}}\AppData\Roaming下,在这个目录下面会找到npm文件夹和npm_cache的文件夹。2、在其他的盘符建立npm_global文件夹和npm_cache文件夹。 3、在cmd窗口用下面命令修改路径。(如下命令引号内为你新建......