当前位置: 首页 > 知识库问答 >
问题:

JavaFX2.1 MessageBox

华良平
2023-03-14

你好
我正在使用JavaFXSDK开发一个程序。我想要一个像C#那样的消息框:

DialogResult rs = MessageBox.showDialog("Message Here...");
if (rs == ....) {
    // code
}

我希望使用JavaFXSDK有这样的功能。非常感谢回答。

共有3个答案

金令秋
2023-03-14

OSS发布的JavaFX2.2上的MessageBox在这里

我认为它会帮助你。

MessageBox.show(primaryStage,
    "Message Body",
    "Message Title", 
    MessageBox.ICON_INFORMATION | MessageBox.OK | MessageBox.CANCEL);
洪胜涝
2023-03-14

更新

从Java8u40开始,核心JavaFX库包括对话框(消息框)功能。以下类请参阅留档:

  • 警惕
  • 对话框(和子类)

有关如何使用警报类的快速信息,请参阅此问题的其他答案:

  • 由用户有限赎罪
  • 由用户Andrei Krasutski

有关更长的教程,请参阅Makery JavaFX对话框教程(强烈建议使用本教程)。

原始答案

下面是一个模式确认对话框的示例。它的工作html" target="_blank">原理是创建一个包含对话框内容的场景的舞台,然后在场景中调用show()。

如果您希望在显示新阶段时主处理线程暂停并且您使用的是JavaFX 2.2,那么您可以在阶段上调用showAndWat()而不是show。修改为使用show和wait并仅显示消息和确定按钮,然后处理应该与C#MessageBox非常相似。

如果您想要Java8的专业外观消息框,我建议使用ControlsFX库中的对话框,这是blo0p3r答案中提到的JavaFXUI控件沙箱中对话框的后期迭代。

戚京
2023-03-14

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.");
    }
});
 类似资料:

相关问答

相关文章

相关阅读