Как воспроизвести видео в предупреждении с помощью JavaFX? - PullRequest
0 голосов
/ 17 мая 2019

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

2 голосов
/ 17 мая 2019

Значение 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();
...