2016-02-29 11 views
4

Как установить параметр wraptext в диалоговом окне предупреждения? Я пытался это сделать:JavaFx - Обрезать текст содержания в диалоговом окне оповещения

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); 

Но это не работает.

ответ

3

Создать новую метку вместо этого, и установить его в качестве контента для DialogPane:

Label label = new Label("Label with\nText that should be wrapped."); 
label.setWrapText(true); 
alert.getDialogPane().setContent(lb); 

WrapText Помните, что обертывания только на окончание строки символов (\ п), а не автоматически.

Если вы хотите, чтобы обернуть автоматически, используйте Text элемент вместо и установить WrappingWidth свойство:

Text text = new Text("Very long text that should be wrapped in the dialog"); 
text.setWrappingWidth(100); 
alert.getDialogPane().setContent(text); 
0

я нахожу это расстраивает, чтобы напечатать все, что и использование текста не дает каких-либо дополнений, поэтому я использую что-то вроде этого из утилиты Lib:

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(); 

Было бы хорошо, если бы это было что-то вроде этого автоматически ... отрезав сообщения такого характера довольно бесполезно:

Я получаю сообщение об ошибке. В нем говорится: «Ошибка анализа на номер строки ...» Любая идея, что пошло не так?

Смежные вопросы