JavaFX创建警报并获取结果
对于我的CS类,他们要求我们使用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
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”逐字逐句),所以我不确定您遗漏了什么,但很高兴它有所帮助。