2012-01-11 3 views
4

У меня есть входящая текстовая строка, содержащая разрыв строки ("\ r").Vaadin: Моя метка игнорирует символ возврата каретки

Когда я вывожу его с помощью: System.out.println(myString), возврат каретки интерпретируется.

Однако, когда я устанавливаю строку в качестве содержимого ярлыка, он игнорирует возврат каретки.

Как заставить ярлык интерпретировать возврат каретки/линии (без режима XHTML)?

ответ

0

После прочтения книги Ваадина и нескольких тестов я не думаю, что \ r может быть интерпретирован ярлыком.

Замена \ р с \ п дает два варианта:

Label.setContentMode(Label.CONTENT_XHTML). //But you don't want to do this 
Label.setContentMode(Label.CONTENT_PREFORMATTED) //But I think it's not the display you want 

С уважением.

Éric

6

Это, как вы можете поместить этот текст в ярлык:

@Override 
public void init() { 
    Window window = new Window(); 
    Label label = new Label("<pre>First line\rSecond line\nThird line</pre>", Label.CONTENT_XHTML); 
    window.addComponent(label); 
    setMainWindow(window); 
} 

Ключа используется режим содержания Label.CONTENT_XHTML и ограждающий текст внутри тега <pre>.

+1

'Label.CONTENT_XHTML' - ** Устаревший. ** Начиная с версии 7.0 вместо этого используйте' ContentMode.HTML' –

2

В Vaadin 7.0 вы можете использовать ContentMode.PREFORMATTED например:

String resultText = "First line\rSecond line\nThird line"; 
Label dateLabel = new Label(resultText, ContentMode.PREFORMATTED); 

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

dateLabel.setStyleName(Runo.LABEL_SMALL); 

Это должно работать и также элегантный.

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