javafx弹窗显示错误堆栈

    public static void createAlertDialog(final String content, final Exception errorMsg) {
        Alert alert = new Alert(AlertType.ERROR);
        alert.setHeight(250);
        alert.setHeaderText(null);
        alert.setContentText(content);

        // Create expandable Exception.
        GridPane expContent = createExpandablePane(errorMsg);

        // Set expandable Exception into the dialog pane.
        alert.getDialogPane().setExpandableContent(expContent);
        alert.showAndWait();
    }
View Code
    private static GridPane createExpandablePane(final Exception errorMsg){
        StringWriter sWriter = new StringWriter();
        PrintWriter pWriter = new PrintWriter(sWriter);
        errorMsg.printStackTrace(pWriter);
        String exceptionText = sWriter.toString();

        Label label = new Label("The exception stacktrace was:");

        TextArea textArea = new TextArea(exceptionText);
        textArea.setEditable(false);
        textArea.setWrapText(true);

        textArea.setMaxWidth(Double.MAX_VALUE);
        textArea.setMaxHeight(Double.MAX_VALUE);
        GridPane.setVgrow(textArea, Priority.ALWAYS);
        GridPane.setHgrow(textArea, Priority.ALWAYS);

        GridPane expContent = new GridPane();
        expContent.setMaxWidth(Double.MAX_VALUE);
        expContent.add(label, 0, 0);
        expContent.add(textArea, 0, 1);
        return expContent;
    }
View Code

 

posted @ 2018-04-20 16:53  一盏碧螺春  阅读(507)  评论(0编辑  收藏  举报