Как воспроизвести видео в предупреждении с помощью JavaFX?

Я пытаюсь воспроизвести видео в диалоге предупреждений с помощью 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 ответ


Alert распространяется из Dialog , что означает, что вы можете настроить его 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();

Есть идеи?

10000