Итак, как отобразить окно сообщения в JavaFX?

Я прочитал это: http://code.makery.ch/blog/javafx-dialogs-official/

Я не думаю, что 40 строк кода приемлемы для отображения простого диалогового окна сообщения об исключении.

Итак, как отображать диалоговые окна в JavaFX? Может быть, ControlsFX может помочь?

ОБНОВЛЕНИЕ

Сравните, как это было сделано в Swing:

JOptionPane.showMessageDialog(frame, 
    "Eggs are not supposed to be green.",
    "Inane error",
    JOptionPane.ERROR_MESSAGE);

It is

ОДИН

ЛИНИЯ

OF

КОД

Этого более чем достаточно.


person Dims    schedule 29.06.2016    source источник
comment
Не знаю, откуда вы берете 40 строк. Для этого нужно всего 4 или 5 строк кода. Вы можете видеть это в примере, который вы предоставили. Если вы хотите построить более сложный настраиваемый диалог, то его будет больше, но это ожидаемо.   -  person ManoDestra    schedule 29.06.2016
comment
Никакие диалоги ControlsFX не помогут, потому что это на самом деле то, что включено в Java 8u40 и выше, это будет устаревшим, если это еще не сделано, прочитайте это code.makery.ch/blog/javafx-8-dialogs   -  person Nicolas Filotto    schedule 29.06.2016
comment
Вам было бы легко расширить класс Alert и предоставить аналогичную сигнатуру метода, как в вашем примере Swing.   -  person pulse0ne    schedule 29.06.2016


Ответы (1)


Вам просто нужно создать новый Alert с его содержимым, установленным на TextArea внутри ScrollPane, а затем добавить текст исключения в TextArea

Exception e = new Exception("An exception!!!!!!!!!!!!!!!!!");
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));

Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText("An exception occurred!");
alert.getDialogPane().setExpandableContent(new ScrollPane(new TextArea(sw.toString())));
alert.showAndWait();

ОБНОВЛЕНИЕ для соответствия обновлению ОП:

Эквивалент в JavaFX для вашего примера Swing:

new Alert(Alert.AlertType.ERROR, "This is an error!").showAndWait();
person explv    schedule 29.06.2016