如何使用JavaFX在警报中播放视频?

时间:2019-05-17 13:38:47

标签: javafx video alert

我正在尝试使用JavaFX在警报对话框中播放视频。问题是我找不到如何显示视频或更多如何将其插入警报中?

这是我的提醒代码

MediaPlayer player = new MediaPlayer( new Media(getClass().getResource("video.mp4").toExternalForm()));
MediaView mediaView = new MediaView(player);

private void alert(){
 Alert alert = new Alert(Alert.AlertType.ERROR);
 alert.setTitle("Don't be a fool");
 alert.setHeaderText("");
 alert.setContentText("Do you really think your time is correct ?");
 Optional<ButtonType> result = alert.showAndWait();
}

1 个答案:

答案 0 :(得分:2)

AlertDialog扩展而来,这意味着您可以自定义其DialogPane。如果要将视频添加到警报中,最好的位置可能是对话框窗格的content。但是请注意,设置content将替换contentText(您在示例代码中设置的):

  

除了标题和内容属性外,还存在标题文本和内容文本属性。 * Text属性的工作方式是,与Node属性相比,它们的优先级较低,但是在通常情况下,它们对于开发人员来说要方便得多,因为这种情况很可能是开发人员经常不只是想设置DialogPane的标题或内容区域中的字符串值。

这意味着,如果仍然要显示"Do you really think your time is correct?",则还必须向内容添加自己的Label。例如:

Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Don't be a fool");
alert.setHeaderText("");

Label label = new Label("Do you really think your time is correct?");
VBox content = new VBox(10, label, mediaView);
content.setAlignment(Pos.CENTER);
alert.getDialogPane().setContent(content);

alert.setOnShowing(e -> player.play());
alert.showAndWait();