Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX创建警报并获取结果_Java_Javafx_Dialog_Alert - Fatal编程技术网

JavaFX创建警报并获取结果

JavaFX创建警报并获取结果,java,javafx,dialog,alert,Java,Javafx,Dialog,Alert,对于我的CS类,他们要求我们使用JavaFX警报。我可以显示警报,但如何获取单击的按钮?获取这些数据的最佳方式是什么 此外,如果可能的话,我想让它有一个下拉面板,当用户选择和选项时,警报关闭并打印用户选择的内容 这里有一些示例代码。当我单击其中一个按钮时,它只会关闭对话框 Alert a=new Alert(AlertType.NONE,“将兵提升到:”,new buttonype(“女王”),new buttonype(“车”); a、 设定所有权(“所有权”); a、 setHeaderTe

对于我的CS类,他们要求我们使用JavaFX警报。我可以显示警报,但如何获取单击的按钮?获取这些数据的最佳方式是什么

此外,如果可能的话,我想让它有一个下拉面板,当用户选择和选项时,警报关闭并打印用户选择的内容

这里有一些示例代码。当我单击其中一个按钮时,它只会关闭对话框

Alert a=new Alert(AlertType.NONE,“将兵提升到:”,new buttonype(“女王”),new buttonype(“车”);
a、 设定所有权(“所有权”);
a、 setHeaderText(“我的标题文本”);
a、 可设置大小(真);
a、 setContentText(“内容文本”);
a、 show和wait();
谢谢,

你能行

ButtonType queen = new ButtonType("Queen");
ButtonType rook = new ButtonType("Rook");
Alert a = new Alert(AlertType.NONE, "Promote pawn to:", queen, rook);
a.setTitle("Title");
a.setHeaderText("My header text");
a.setResizable(true);
a.setContentText("Content text");
a.showAndWait().ifPresent(response -> {
    if (response == queen) {
        // promote to queen...
    } else if (response == rook) {
        // promote to rook...
    }
});

İ如果要使用非阻塞类型的代码执行此操作:

final Alert alert2=新警报(Alert.AlertType.CONFIRMATION);
alert2.show();
alert2.setOnCloseRequest(新的EventHandler(){
@凌驾
公共无效句柄(DialogEvent事件){
ButtonType结果=alert2.getResult();
字符串resultText=result.getText();
//结果逻辑
}
});

你读了吗?我试过了。我不明白它在说什么。结果转换器是如何工作的?如果我能看到一个实际代码的例子,我想我能理解,但我一直在四处寻找,除了显示警报和设置警报类型之外,没有发现任何关于警报的信息。在“选项1”、“选项2”和“选项3”下有三个例子。AIUI您不会将结果转换器用于
警报
对话框
文档说明“只要类型
R
不是Void或ButtonType,就必须始终设置结果转换器。”,但是
警报
扩展了
对话框
,因此结果转换器不适用。对此进行了完美的解释。谢谢它实际上是直接从文档中获取的(基本上是“选项2”逐字逐句),所以我不确定您遗漏了什么,但很高兴它有所帮助。