JavaFX 2.1 MessageBox
日安!
我正在使用JavaFX SDK开发一个程序。我想要一个像C#中那样的消息框:
DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
// code
}
我想使用JavaFX SDK拥有这样的功能。非常感谢您的回答。
日安!
我正在使用JavaFX SDK开发一个程序。我想要一个像C#中那样的消息框:
DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
// code
}
我想使用JavaFX SDK拥有这样的功能。非常感谢您的回答。
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.");
}
});
更新
从Java8u40开始,核心JavaFX库包括对话框(消息框)功能。请参阅以下类的文档:
有关如何使用该类的快速信息,请参阅此问题的其他答案:Alert
有关更长的教程,请参阅 Makery JavaFX 对话框教程(强烈建议使用此教程)。
原始答案
下面是模式确认对话框的示例。它的工作原理是创建一个包含对话框内容的场景的舞台,然后在该场景中调用 show()。
如果您希望主处理线程在显示新舞台时使用 JavaFX 2.2+ 时暂停,则可以在舞台上调用 showAndWait() 而不是 show。修改为使用显示和等待,只显示一条消息和确定按钮,则处理应该与C# MessageBox非常相似。
如果你想要一个适用于Java 8的专业消息框,我建议使用 ControlsFX 库中的对话框,这是 blo0p3r 的答案中提到的 JavaFX UI Controls Sandbox 中对话框的后续迭代。