如何在警告对话框中设置wraptext选项?我试着这样做:
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.getButtonTypes().set(0, ButtonType.NO);
alert.getButtonTypes().set(1, ButtonType.YES);
alert.getDialogPane().getStylesheets().add("/styles/style.css");
alert.setGraphic(new ImageView(getIcon(icon)));
Label lb = (Label) alert.getDialogPane().getChildren().get(1);
lb.setWrapText(true); //Attempt to set wrapText option
alert.setTitle(title);
alert.setHeaderText(header);
alert.setContentText(content);
但它不起作用。
答案 0 :(得分:6)
改为创建一个新标签,并将其设置为DialogPane的内容:
Label label = new Label("Label with\nText that should be wrapped.");
label.setWrapText(true);
alert.getDialogPane().setContent(lb);
请记住,WrapText
仅包含在行结尾字符(\ n)上,而不是自动包含。
如果要自动换行,请改用Text
元素并设置WrappingWidth
属性:
Text text = new Text("Very long text that should be wrapped in the dialog");
text.setWrappingWidth(100);
alert.getDialogPane().setContent(text);
答案 1 :(得分:1)
我发现必须输入所有这些令人沮丧,并且使用Text不提供任何填充,所以我在实用程序库中使用类似的东西:
public static Alert createAlert(Alert.AlertType type, String message) {
Alert alert = new Alert(type);
StringBuilder sb = new StringBuilder(message);
for (int i = 0; i < message.length(); i += 200) {
sb.insert(i, "\n");
}
Label t = new Label(sb.toString());
alert.getDialogPane().setContent(t);
return alert;
}
使用起来更合理:
Alert alert = FxUtil.createAlert(Alert.AlertType.ERROR, ex.getMessage());
alert.show();
如果它自动完成这样的事情会很好......切断这种性质的信息是没有用的:
我收到一条错误消息。它说:“在行号上解析错误......”任何想法出了什么问题?