我一直在尝试将大字符串显示为警报,但未成功。
public void customAlert(String header, String body, ButtonType customBtn) {
clearAlert();
alert.setHeaderText(header);
//alert.setContentText(body);
String content = "";
int counter = 1;
int y=0;
for (int x = 0; x < body.length(); ++x) {
// System.err.println("concat");
if (x > counter * 50 && body.charAt(x) == ' ') {
// System.err.println("concat");
++counter;
for (; y < x; ++y) {
content.concat(Character.toString(body.charAt(y)));
}
content.concat(Character.toString('\n'));
// System.err.println(content);
}
}
alert.getDialogPane().setContent(new Label(content));
alert.getDialogPane().setMaxWidth(500);
if (customBtn != null) {
alert.getButtonTypes().clear();
alert.getButtonTypes().add(customBtn);
}
alert.showAndWait();
}
首先我尝试使用 setContentText(),但它没有显示整个字符串。然后我使用了alert.getDialogPane().setContent(new Label(body)); - 但警报框变得比屏幕尺寸更宽。然后我尝试过滤添加换行符的字符串并将 maxWidth 设置为警报,但过滤不起作用。
请您参考如下方法:
对于长文本,最好将其呈现在 TextArea 中:
TextArea textArea = new TextArea(text);
textArea.setPrefColumnCount(40);
textArea.setPrefRowCount(20);
textArea.setEditable(false);
textArea.setWrapText(true);
alert.getDialogPane().setContent(textArea);