你好
我正在使用JavaFXSDK开发一个程序。我想要一个像C#那样的消息框:
DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
// code
}
我希望使用JavaFXSDK有这样的功能。非常感谢回答。
OSS发布的JavaFX2.2上的MessageBox在这里
我认为它会帮助你。
MessageBox.show(primaryStage,
"Message Body",
"Message Title",
MessageBox.ICON_INFORMATION | MessageBox.OK | MessageBox.CANCEL);
更新
从Java8u40开始,核心JavaFX库包括对话框(消息框)功能。以下类请参阅留档:
有关如何使用警报
类的快速信息,请参阅此问题的其他答案:
有关更长的教程,请参阅Makery JavaFX对话框教程(强烈建议使用本教程)。
原始答案
下面是一个模式确认对话框的示例。它的工作html" target="_blank">原理是创建一个包含对话框内容的场景的舞台,然后在场景中调用show()。
如果您希望在显示新阶段时主处理线程暂停并且您使用的是JavaFX 2.2,那么您可以在阶段上调用showAndWat()而不是show。修改为使用show和wait并仅显示消息和确定按钮,然后处理应该与C#MessageBox非常相似。
如果您想要Java8的专业外观消息框,我建议使用ControlsFX库中的对话框,这是blo0p3r答案中提到的JavaFXUI控件沙箱中对话框的后期迭代。
https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Alert.html
Alert类是Dialog类的子类,并支持许多预构建的对话框类型,这些类型可以很容易地显示给用户以提示响应。
所以代码看起来像
Alert alert = new Alert(AlertType.INFORMATION);
alert.setTitle("Message Here...");
alert.setHeaderText("Look, an Information Dialog");
alert.setContentText("I have a great message for you!");
alert.showAndWait().ifPresent(rs -> {
if (rs == ButtonType.OK) {
System.out.println("Pressed OK.");
}
});